我正在尝试通过跳转主机连接到服务器。我通常通过首先登录跳转主机并使用存放在那里的密钥来登录服务器来实现此目的。代理转发到跳转主机已禁用。我找到了一个有效的速记:
ssh -t jump ssh server
但我想在 .ssh/config 中使用 ProxyJump。
每当我添加指令时,它似乎都在尝试使用客户端上的密钥而不是跳转主机上的密钥登录服务器。我怎样才能改变这一点?
答案1
这就是 ProxyJump 的工作原理 - 它将您记录到第一台主机,启动 IO 转发,然后使用本地计算机中的凭据将您记录到第二台主机。这是更安全的方法,因为您的凭据永远不会离开您的计算机,代理也不会转发套接字。
将密钥从跳转盒移至您的计算机,或在第二台主机上设置身份验证以接受您的本地凭据/密钥。
没有简单的方法可以解决这个问题,因为 openssh 开发人员对推广不良的安全实践不感兴趣。
答案2
如果您使用默认密钥,其中跳转主机的密钥位于本地~/.ssh
目录中,远程计算机的密钥位于~/.ssh
跳转主机的目录中:
ssh -t <jumphost> "ssh -t <remote-machine>"
如果你想指定键的路径:
ssh -it <local-path-to-your-jumphost-key> <jumphost> "ssh -ti <path-on-jumphost-for-remote-machine-key> <remote-machine>"