通过中间主机使用密钥进行 SSH 连接

通过中间主机使用密钥进行 SSH 连接

我阅读了该问题的几个版本并尝试实现它们,但它们没有起作用,所以我想用具体的细节来询问我的问题。

主机 A:本地计算机

主机 B:中间计算机(我可以使用公钥 foo.key 从本地访问

主机 C:最终计算机(我可以从主机 B 访问它)

我遵循如下命令:

ssh -J [email protected] [email protected] 

但钥匙该放哪儿呢?

当我尝试类似的事情时:

 ssh -i foo.key -J [email protected] [email protected]

它也会给出错误。

答案1

一般语法是ssh -J <intermediates> <final>,所以根据您提供的信息,实际的命令应该是:

ssh -J user@hostB user@hostC

如果使用-JProxyJump,所有连接都由本地运行的客户端建立,因此所有私钥都必须仅在本地系统上可用。

-i选项仅允许为所有连接指定相同的密钥。如果不同的主机(例如中间主机与最终主机)需要不同的密钥,则需要在 ssh-agent 中指定它们~/.ssh/config(或将它们加载到 ssh-agent 中):

Host hostB
    IdentityFile ~/bastion.key

Host hostC
    IdentityFile ~/finalserver.key

(如果需要,您可以在同一个文件中指定User user和/或。)ProxyJump user@hostB

相关内容