我的跳转服务器和最终主机都运行在非默认 22 端口上。
根据https://wiki.gentoo.org/wiki/SSH_jump_host
我尝试过ssh -J user1@host1:port1 user2@host2 -p port2
或者ssh -J user1@host1:port1 user2@host2:port2
系统提示我输入跳转服务器密码,然后它们都失败并出现错误
channel 0: open failed: administratively prohibited: port forwarding is disabled
stdio forwarding failed
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535
那么我该如何让它发挥作用呢?
答案1
手册页显示该选项的格式-J
是-J [user@]host[:port]
,所以-J user1@host1:port1
看起来是正确的:
-J [user@]host[:port]
首先与跳转主机建立 ssh 连接,然后建立从那里到最终目的地的 TCP 转发,从而连接到目标主机。可以指定多个跳转,并用逗号分隔。这是指定 ProxyJump 配置指令的快捷方式。
但基于该错误,您的问题似乎不是端口规范,而是中间主机不允许端口转发并且-J
需要端口转发的事实。
如果无法更改这一点,但您确实信任跳转主机,则可以与跳转主机建立一个连接,并在那里运行另一个 SSH 客户端以打开与最终目标主机的连接:
ssh user1@host1:port1 'ssh user2@host2:port2'
(或者也许与ssh -t
)