我正在努力设置 ssh-agent-forwarding。
我想要做什么:我想将我的公钥放在 ubuntu 服务器上,将私钥放在我的 Windows 机器上。我想连接到 ubuntu 服务器,而不必输入我的私钥密码,因为它存储在 pagent 中。这部分工作完美无缺。下一部分是不起作用的部分。
连接到 ubuntu-server 后,我想通过 git/ssh 进入其他服务器,只需使用 pagent 中我的 Windows 机器上的密钥。
到目前为止我所做的:我有一个安装了 pagent 的 Windows 客户端。密钥是在windows机器上设置的。我可以连接到 ubuntu 服务器并通过我设置的私钥进行授权。我还在腻子中激活了“允许代理转发”。
这就是我的 ssh_config 的样子:
Host *
ForwardAgent yes
问题是什么:当连接到服务器并输入“ssh-add -l”时,服务器告诉我:“代理没有身份。”
我忘记了什么?
答案1
首先,检查服务器是否允许代理转发(AllowAgentForwarding
in sshd_config
),如果不允许,则允许并重新启动 sshd 服务。然后仔细检查它是否确实在 PuTTY 中启用。如果两者都很好,请检查腻子的调试日志。如果转发失败,一定有一些信息说明原因。
答案2
我找到了我的问题。
我有
eval $(ssh-agent)
在我的 .bashrc 中。
删除该行后,转发开始工作。