中间 ssh 跃点节点上的 ssh-add

中间 ssh 跃点节点上的 ssh-add

我在机器 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选项将代理连接转发到远程主机(sshB 上的命令将与 A 上的代理通信,因此您不需要 ssh-add)。但请注意,B 上可能会行政禁止代理转发。

否则,您必须在 B 上启动代理:

eval "$(ssh-agent)"
ssh-add ...

相关内容