我想用一个命令直接ssh
从主机连接A
到主机。C
ssh
+---+ +---+ +---+
| A | -> | B | -> | C |
+---+ +---+ +---+
主机A
已经配置了用于访问主机的密钥B
(当我ssh B
从 A 运行时它可以工作)
主机B
已经配置了用于访问主机的密钥C
(当我ssh C
从 B 运行时它可以工作)
主机A
用户名是daniel
主机B
用户名是ubuntu
主机C
用户名是ubuntu
Hosts B
、 和C
由 IP 地址而不是名称引用。
是否可以?如何?
答案1
您可以直接从命令行执行此操作,如下所示:
ssh -A -t ubuntu@hostB ssh -A hostC
或者将这些行添加到您的"$HOME"/.ssh/config
文件中并ssh hostC
以正常方式调用:
Host hostB
User ubuntu
Host hostC
User ubuntu
ProxyCommand ssh -q hostB nc -q0 %h %p
在您的场景中,hostB
和hostC
由 IP 地址引用,只需将这些 IP 地址放在适当的位置即可。 (您可能需要ubuntu@hostB
在ProxyCommand
现场。)
文章中有更多详细信息透明多跳 SSH