小编典典

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

all

我刚刚开始使用 git,但我无法记住我的密码我正在使用提升的 cmd.exe,我的 git 主机是 github,我已经创建了一个 ssh 密钥,就像
github 上的指南一样

但我仍然得到

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

阅读 75

收藏
2022-07-01

共1个答案

小编典典

我意识到这个问题是在两年前提出的,但我遇到了同样的问题,这里的几个答案并没有完全回答我的问题。以下是三个分步解决方案,具体取决于您是否使用
TortoiseGit 和 msysgit。

第一个解决方案 假设 Windows、msysgit 和 PuTTY。

  1. 按照说明安装 msysgit 和 PuTTY。

  2. (可选)将 PuTTY 添加到您的路径。 (如果您不这样做,那么下面对 PuTTY 命令的任何引用都必须以相应可执行文件的完整路径为前缀。)

  3. 如果您还没有这样做,请按照 GitHub 或您的 Git 主机的说明生成密钥哈希。

  4. 同样,如果您还没有这样做,请使用 puttygen.exe 转换您的密钥以与 PuTTY 的 pageant.exe 一起使用。说明在 PuTTY 的文档、这个有用的指南以及网络空间的其他几个地方。

  5. 运行 PuTTY 的 pageant.exe ,打开您的 .ppk 文件(“添加密钥”),并为您的密钥提供密码。

  6. 访问 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 可能会给您带来麻烦。

  1. 打开命令提示符。

  2. 如果您尝试连接到托管在 Github.com 的 git 存储库,请运行以下命令:

plink.exe git@github.com

如果您尝试连接的 git 存储库托管在其他地方,则将 git@github.com 替换为适当的用户名和 URL。(假设
Github)你应该被告知服务器的主机密钥没有被缓存,并询问你是否信任它。回答 y 。这会将服务器的主机密钥添加到 PuTTY
的已知主机列表中。如果没有这一步,git 命令将无法正常工作。按回车后,Github 会通知您 Github 不提供 shell
访问。没关系……我们不需要它。(如果您正在连接到其他主机,并且它为您提供了 shell 访问权限,那么最好终止链接而不做任何其他事情。)

  1. 全部完成!Git 命令现在应该可以从命令行运行。您可能希望 pageant.exe在启动时自动加载您的 .ppk 文件,具体取决于您需要它的频率。

第二种解决方案 假设 Windows、msysgit 和 TortoiseGit。

TortoiseGit 带有 PuTTY 可执行文件和经过特殊修改的 plink 版本(称为 TortoisePlink.exe),这将使事情变得更容易。

  1. 按照说明安装 msysgit 和 TortoiseGit。

  2. 如果您还没有这样做,请按照 GitHub 或您的 Git 主机的说明生成密钥哈希。

  3. 同样,如果您还没有这样做,请使用 TortoiseGit 的 puttygen.exe 转换您的密钥以与 TortoiseGit 的 pageant.exe 一起使用。说明在 PuTTY 的文档、第一个解决方案中链接的有用指南以及网络空间的其他几个地方。

  4. 运行 TortoiseGit 的 pageant.exe ,打开您的 .ppk 文件(“添加密钥”)并为您的密钥提供密码。

  5. 访问 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 可能会给您带来麻烦。

  1. 全部完成!Git 命令现在应该可以从命令行运行。当您第一次尝试连接到您的 git 存储库时,您可能会被告知服务器的主机密钥未缓存,并询问您是否信任该服务器。点击“是”。(这是运行中的 TortoisePlink.exe。)

您可能希望 pageant.exe在启动时自动加载您的 .ppk 文件,具体取决于您需要它的频率。

第三种解决方案 假定 Windows、msysgit 和本机命令提示符。

  1. 安装 msysgit
  2. 确保允许在 MS-DOS 命令提示符下使用 git
  3. start-ssh-agent
  4. 输入 SSH 密码
  5. 全部完成!Git 命令现在应该可以在本机命令提示符下工作。
2022-07-01