windows - 为什么 git 在 Windows 下记不住我的密码

标签 windows git ssh cmd

我刚刚开始使用 git,我无法记住我的密码我正在使用 cmd.exe 提升,我的 git 主机是 github,我在 github 上创建了一个类似于该指南的 ssh key

但我仍然得到

*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':

最佳答案

我意识到这个问题已经两年了,但我遇到了同样的问题,这里的几个答案并没有完全回答我的问题。以下是三个分步解决方案,具体取决于您是否在 msysgit 之外使用 TortoiseGit。
第一个解决方案 假设使用 Windows、msysgit 和 PuTTY。

  • 按照说明安装 msysgit 和 PuTTY。
  • (可选)将 PuTTY 添加到您的路径中。 (如果您不这样做,则下面对 PuTTY 命令的任何引用都必须以相应可执行文件的完整路径为前缀。)
  • 如果您还没有这样做,请按照 GitHub 上的说明或您的 Git 主机的说明生成 key 哈希。
  • 同样,如果您还没有这样做,请使用 将您的 key 转换为与 PuTTY 的 pageant.exe 一起使用。 puttygen.exe .说明在 PuTTY 的文档中,位于 this helpful guide ,以及网络空间中的其他几个地方。
  • 跑腻子 pageant.exe ,打开您的 .ppk 文件(“添加 key ”),并为您的 key 提供密码。
  • 访问 Windows 的环境变量对话框(右键单击“计算机”,单击“属性”,单击“高级系统设置”或“高级”选项卡,单击“环境变量”)。添加以下环境变量:
    GIT_SSH=C:\full\path\to\plink.exe
    将“C:\full\path\to”替换为 PuTTY 的完整安装路径,其中找到 plink.exe。最好将其添加到“用户变量”部分。此外,请确保用于 plink.exe 的路径与用于 Pageant (pageant.exe) 的路径匹配。在某些情况下,您可能安装了多个 PuTTY,因为它可能与其他应用程序一起安装。使用一个安装中的 plink.exe 和另一个安装中的 pageant.exe 可能会给您带来麻烦。
  • 打开命令提示符。
  • 如果您尝试连接到 Github.com 上托管的 git 存储库,请运行以下命令:
    plink.exe git@github.com
    如果您尝试连接的 git 存储库托管在其他地方,则将 git@github.com 替换为适当的用户名和 URL。 (假设 Github)您应该被告知服务器的主机 key 未缓存,并询问您是否信任它。回答 y .这会将服务器的主机 key 添加到 PuTTY 的已知主机列表中。如果没有这一步,git 命令将无法正常工作。按回车后,Github 会通知您 Github 不提供 shell 访问。没关系……我们不需要它。 (如果您正在连接到某个其他主机,并且它为您提供 shell 访问权限,则最好终止链接而不做任何其他事情。)
  • 全部搞定! Git 命令现在应该可以从命令行运行。您可能想要 pageant.exe load your .ppk file automatically at boot time ,取决于您需要它的频率。

  • 第二种解决方案假设使用 Windows、msysgit 和 TortoiseGit。
    TortoiseGit 带有 PuTTY 可执行文件和经过特殊修改的 plink(称为 TortoisePlink.exe)版本,这将使事情变得更容易。
  • 按照说明安装 msysgit 和 TortoiseGit。
  • 如果您尚未这样做,请按照 GitHub 上的说明或您的 Git 主机的说明生成 key 哈希。
  • 同样,如果您还没有这样做,请使用 TortoiseGit 的 转换您的 key 以与 TortoiseGit 的 pageant.exe 一起使用。 puttygen.exe .说明位于 PuTTY 的文档、链接到第一个解决方案的有用指南以及网络空间的其他几个地方。
  • 运行 TortoiseGit 的 pageant.exe ,打开您的 .ppk 文件(“添加 key ”)并为您的 key 提供密码。
  • 访问 Windows 的环境变量对话框(右键单击“计算机”,单击“属性”,单击“高级系统设置”或“高级”选项卡,单击“环境变量”)。添加以下环境变量:
    GIT_SSH=C:\full\path\to\TortoisePlink.exe
    将“C:\full\path\to”替换为 TortoiseGit 的完整安装路径,其中 TortoisePlink.exe 位于其中。最好将其添加到“用户变量”部分。此外,请确保用于 TortoisePlink.exe 的路径与用于 Pageant (pageant.exe) 的路径匹配。在某些情况下,您可能安装了多个 PuTTY,因为它可能与其他应用程序一起安装。使用 TortoiseGit 安装中的 TortoisePlink.exe 和不同应用程序的另一个安装(或独立 PuTTY 安装)中的 pageant.exe 可能会给您带来麻烦。
  • 全部搞定! Git 命令现在应该可以从命令行运行。第一次尝试连接到 git 存储库时,您可能会被告知服务器的主机 key 未缓存,并询问您是否信任该服务器。单击"is"。 (这是正在运行的 TortoisePlink.exe。)
    您可能想要 pageant.exe load your .ppk file automatically at boot time ,取决于您需要它的频率。

  • 第三种解决方案假定使用 Windows、msysgit 和 native 命令提示符。
  • 安装 msysgit
  • 确保允许在 MS-DOS 命令提示符下使用 git
  • 运行 start-ssh-agent
  • 输入 SSH 密码
  • 全部搞定! Git 命令现在应该在 native 命令提示符下工作。
  • 关于windows - 为什么 git 在 Windows 下记不住我的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370030/

    相关文章:

    git - 清理克隆上的 git 子模块的工作流程是什么?

    Git:如何设置 SSH key 以从第二台计算机访问我的远程存储库?

    linux - 从 node.js 作为子进程运行 git?

    windows - Node.js EADDRNOTAVAIL无法通过外部IP访问

    c++ - 从 64 位窗口的 user32.dll 的 translatemessage() api 抛出的第一次机会异常

    mysql - 用于在 Windows 上管理 Apache 和 MySQL 的通知区域工具

    docker - 通过 ssh 的 Portainer 端点

    c# - 模拟 Windows 用户

    git - 制作我自己的框架并将其用作项目的上游

    git - `git tag` 按指向的提交日期的时间顺序排序