我现在使用 msysgit 是因为 GUI 工具,它使用 Putty 的 Pageant 和 PLink 实用程序,但我使用 Cygwin 作为通用 SSH 终端。我之前一直在 Cygwin 上使用 ssh-agent,但这意味着我必须为两个 SSH 密钥管理器输入我的 SSH 密钥密码。是否可以配置我的所有 Unix 端口工具(msys、git、cygwin、Ruby Net:SSH 等)以使用 PLink/Pageant 而不是 ssh-agent?这似乎是 PLink 的用途,但我找不到有关如何操作的文档。
答案1
我还在 openssh 和 pageant 之间编写了一个代理,我称之为ssh-盛会。它看起来和 charade 的方法差不多,但我没听说过。好吧,以防你遇到麻烦,我想我会抛出 ssh-pageant 来尝试。
答案2
我碰到伪装不久前,我开发了一款替代 ssh-agent 和 Pageant 代理的软件。当时我还没能让它正常工作,之后也没机会使用它,但也许值得一试。如果你运气好的话,请回复并告诉我,它已经在我的待办事项清单上很久了!
答案3
您希望将 ssh-agent 和 pageant 集成在一起,以便只有一个密钥库。您可以这样做的一种方法是使用 PuTTY 作为终端,将密钥保存在 pageant 中,启用代理转发,运行 Cygwin sshd 并 ssh 到本地主机。这将为您提供一个环境,其中 pageant 通过与 PuTTY 的 ssh 连接提供密钥 - 无需运行 ssh-agent。
应该可以使用 Plink 执行相同操作。只需使用 -A 选项,并在交互式 Cygwin 会话中使用生成的 SSH_AUTH_SOCK 设置。免责声明:我还没有尝试过。
编辑:我现在已经尝试过了;效果很好。我创建了一个 PLINK 的快捷方式:
"C:\path\to\PLINK.EXE" -A -ssh -l yournamehere localhost "echo $SSH_AUTH_SOCK; while :; do sleep 86400; done"
然后,在 Cygwin 终端中(我当然使用 PuTTYcyg):
export SSH_AUTH_SOCK=/tmp/ssh-crYQh24AMq/agent.3964
ssh-add -l
似乎运行良好,但仍然需要本地 sshd。
会是什么真的最好的办法是有一个与 openssh 兼容的代理,它可以直接与 pageant 密钥库通信,但除非有人编写了这样一个东西,否则这不会发生。我很久以前就研究过它,考虑到这个解决方法很容易,它似乎比它值得的麻烦更多。
答案4
我建议使用同样的东西(使用 putty),但只使用 putty,因为它可以更好地与 pagent 和 plink 集成,我将它与 msysgit 一起使用,但使用 msysgit 提供的 git bash 就可以了,在控制台之间切换有点繁琐,但分离也很好