TortoiseGit 使用私钥(非root用户)

TortoiseGit 使用私钥(非root用户)

我有一个带有一些 git 存储库的 Debian 服务器。我使用以下代码生成了两个密钥:

keygen -t rsa

这给了我 root.pub 和 user.pub 文件。root.pub 附加到 /root/.ssh/authorized_keys,user.pub 附加到 /home/user/.ssh/authorized_keys。

我已将密钥转换为 putty 格式 (ppk):root.ppk 和 user.ppk。现在我能够使用这些密钥通过 putty 以 root 和 user 身份登录 - 一切正常!

当涉及到 TortoiseGit(最新版本)时,魔法就出现了。我设置了两个遥控器:

[remote "user"]
    fetch = ...
    url = ssh://user@server/path
    puttykeyfile = C:\\path\\user.ppk
[remote "root"]
    fetch = ...
    url = ssh://root@server/path
    puttykeyfile = C:\\path\\root.ppk

使用 root.ppk 一切正常 - 我可以推送和拉取到我的存储库而无需输入密码。但 user.ppk 失败了 - 我得到了 TortoisePLink 窗口并提示输入密码。

/var/log/auth.log 中没有任何内容。我完全被难住了。TortoiseGit(或 Windows)是否需要更多配置?

更新:似乎 TortoiseGit 将密钥缓存或存储在某处。如果我将 root.pub 添加到 /home/user/.ssh/authorized_keys,无论我在 TortoiseGit 设置中指定哪个密钥,我都可以使用两个遥控器进行推送/拉取。终止 TortoiseCache.exe、重新启动 pageant、重新启动 Windows 机器均无效。

它肯定会将密钥存储在某个地方。无论我配置什么,ssh 登录都只使用 root.ppk。所以问题是“TortoiseGit 除了在 .git/config 中存储 ppk 密钥外,还在哪里存储“?

答案1

你实际上是这个意思吗:

root.pub 被附加到 /root/.ssh/authorized_keys,而 user.pub 被附加到 /home/user/authorized_keys。

因为这表明你把 user.pub 放在了错误的文件中 - 它应该是

/home/user/.ssh/authorized_keys

答案2

J 刚刚在我的另一台 Windows 机器上做了完全相同的事情。一切正常。我注意到 ssh-keygen 命令来自 MSysGit 发行版,而在第一台机器上我尝试了 Cygwin 命令。

相关内容