我在机器 A 上,跳到机器 B 上,最终到达机器 C。
A --ssh--> B --ssh--> C
当我在 A 上 ssh 添加我的私钥时,一切正常,我可以根据需要多次跳到 B,而无需提供任何密码。
当我 ssh-add 时在乙,我收到此错误消息:
Could not open a connection to your authentication agent.
目标是在 B 上也进行 ssh 添加,并从那里到达许多不同的 C...
我知道如何使用 .ssh/config 设置“传递”,但这不是我想要做的。
答案1
您需要启用身份验证代理连接转发(选项“-A”)。
例子:
hostA$ ssh -A hostB # agent forwarding enabled
hostB$ ssh-add
hostB$ ssh hostC # tries now the keys from hostA and the newly added
hostC$
如果出于安全原因您不想转发密钥,您可以使用以下命令启动一个新的 ssh-agent 实例
hostB$ eval "$(ssh-agent)"
答案2
您可以使用该-A
选项将代理连接转发到远程主机(ssh
B 上的命令将与 A 上的代理通信,因此您不需要 ssh-add)。但请注意,B 上可能会行政禁止代理转发。
否则,您必须在 B 上启动代理:
eval "$(ssh-agent)"
ssh-add ...