我在 Windows 10 上使用 Tortoise Git。当我推送时,它会询问我密码,尽管我确实有%userprofile%\.ssh\id_rsa
文件。我也尝试从命令行(Git bash)使用 git。如果我使用谷歌搜索,我会被指示写入IdentityFile
。%userprofile%\.ssh\config
我已经在那里有它,但它仍然不起作用。我打开了 Sysinternals 的 Process Monitor 并记录了 git.exe 文件系统活动,我发现它甚至没有尝试访问.ssh
目录中的任何内容。我怎样才能让 git 使用这个 id_rsa 文件?
答案1
我终于找到解决办法了!
问题是我使用的是 https 身份验证而不是 ssh 身份验证。这就是为什么它从未尝试访问密钥文件的原因。
解决办法是改为ssh认证:
$ git remote set-url origin [email protected]:something/something.git
为了验证现在是否是 ssh 身份验证,我使用了git remote -v
:
$ git remote -v
origin [email protected]:something/something.git (fetch)
origin [email protected]:something/something.git (push)
现在钥匙终于能用了。
PS:最后要记住的一点是,ppk 密钥不适用于 Windows 上的 git bash。我在验证它是否访问正确的密钥时学到了这一点(或者,如果您当前在 git 目录中,也可以使用)。此命令以以下内容结尾:。为了解决这个问题,我必须将密钥转换为 open-ssh 格式。为此,我使用了 puttygen GUI,但对于那些想要更多解释或命令行的人来说,这里是解释:ssh -v -T [email protected]
GIT_SSH_COMMAND="ssh -v" git pull
error in libcrypto
https://www.baeldung.com/linux/ssh-key-types-convert-ppk
我希望这个回复对某些人有用。