如何使用 Windows/git/tortoisegit/putty/Synology 设置 SSH 身份验证

me-*_*e-- 7 windows ssh git putty

我无可救药地糊涂了。我试图阻止 tortoisegit 在每次拉/推时提示我输入密码(我不介意每次登录 Windows 一次,但此后我希望它是自动的)。

我的 git 服务器通过官方 Git 服务器包在我的 Synology NAS 上运行。我通过ssh://user@server/foo/bar克隆。

这是我所做/尝试过的:

  • 通过 Puttygen 为自己创建了一个公钥和私钥对。
  • 启动 Putty 身份验证代理(选美)并将我的私钥添加到其中。
  • /root/.ssh/的服务器上创建了一个authorized_keys文件。我试过只使用公钥文件的 Base64 编码部分,以及页眉和相应的页脚。---- BEGIN SSH2 PUBLIC KEY ----
  • 将 tortoisegit 设置为使用TortoiseGitPLink.exe作为 SSH 客户端(我相信是默认设置)。我也试过pageant.exe,但这会导致错误:“无法加载此密钥(无法打开文件)”

仍然提示我输入密码,并且 Putty Agent 似乎没有以任何方式参与该过程(即使在身份验证后也没有密钥)。任何建议将不胜感激。

小智 5

确保您已遵循 ssh 密钥上的重要指示

Windows Git 和 TortoiseGit 需要在 Windows 中设置 2 个环境变量。

GIT_SSH=C:\Program Files\TortoiseGIT\bin\TortoiseGitPlink.exe

SVN_SSH=C:\Program Files\TortoiseGIT\bin\TortoiseGitPlink.exe

(如果不同,请替换为您的路径)

您还需要确保 PLINK_PROTOCOL 没有被覆盖。否则,PLINK_PROTOCOL=ssh

进行这些更改后,请使用以下内容验证访问权限:

打开 Dos 命令窗口,发出命令 plink git@your git depot 服务器名称

如果返回 Git 存储库列表,则表明您正在与 Git 进行通信。

如果返回错误,您可能需要编辑 .ssh/config 和/或 etc/hosts windows 文件


hea*_*vyd 2

您不想使用通过“保存公钥”按钮保存的公钥。在 PuTTY 密钥生成器 UI 中,您应该将顶部框中的文本复制到您的authorized_keys文件中:

PuTTY 密钥生成器

它应该被准确地复制,并且最终应该成为文件中的一行authorized_keys

另外,您是否使用ssh://root@server/foo/bar克隆您的存储库?如果没有,您需要确保将公钥添加到authorized_keys正确用户的文件中。