如何:通过 Jumphost ssh 到主机,均在非默认的 22 端口上?

如何:通过 Jumphost ssh 到主机,均在非默认的 22 端口上?

我的跳转服务器和最终主机都运行在非默认 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

相关内容