将我的凭据从 ssh 会话传递到另一个 ssh 会话

将我的凭据从 ssh 会话传递到另一个 ssh 会话

我想使用 A 中的特定私钥从 A ssh 到 B。然后,我想使用与 ssh 到 B 相同的凭据从 B ssh 到 C。

是否可以将凭据从 ssh 会话“传递”到第一个会话内启动的另一个 ssh 会话?

答案1

是的。

您正在寻找的内容被称为ssh-代理转发。一旦您学会使用ssh-agent加载解锁密钥并使它们可供 ssh 使用ssh-client,客户端就可以将此数据沿着连接链传递,以便将来的 ssh 客户端可以与原始代理进行通信。

除此之外,您还需要ForwardAgent yes在您的ssh 配置对于应该被允许这些特权的各种机器。您应该意识到这引入了几个新的安全问题层。你这是在玩火。别说我们没有警告你!

答案2

这个答案除了迦勒写了什么。您应该小心启用 SSH 代理转发到不受信任的主机。我所做的就是在我的~/.ssh/config文件中列出特定主机,如下所示:

ForwardX11 yes

Host trusted-server
    ForwardAgent yes
    Compression yes

Host trusted-desktop
    ForwardAgent yes
    ForwardX11Trusted yes

这使得每个人都可以进行 X11 转发,但 OpenSSH 会过滤掉 SECURITY 命令。对服务器启用压缩,对桌面启用 Trusted X11(无过滤),并在连接到任一服务器时启用 SSH 代理。

相关内容