我可以将这些SSH隧道命令合并为一个命令吗?

时间:2020-04-24 06:05:02

标签: ssh ssh-tunnel

我有两步解决方案,可通过SSH访问特定服务器:

步骤1,以bash表示:

ssh -L 127.0.0.1:5000:server2.com:22 server1.com

第2步,在新的bash会话中:

ssh -P 5000 127.0.0.1  # This gets me into server2.com

Q1:有什么方法可以将这两个命令组合为一个ssh命令,然后...
问题2:我可以在~/.ssh/config中为此连接设置一个主机条目(允许我只输入ssh my-tunnel吗?)?

我认为这归结为以某种方式链接主机。我对此很陌生,无法完全理解...

1 个答案:

答案 0 :(得分:2)

我遇到this question,并为ssh支持跳转主机感到惊讶。

您可以使用单个命令连接到目标服务器,而ssh将注意中间跃点。

ssh -J server1.com server2.com

-J [user @] host [:port] 首先建立与跳转主机的ssh连接,然后建立TCP,以连接到目标主机 从那里转发到最终目的地。可以指定多个跳数,用 逗号字符。这是指定ProxyJump配置指令的快捷方式

这是SSH配置对应的跳转主机配置:

Host jumphost
    Hostname server1.com
    User $YOUR_USERNAME
    Port 22
Host my-tunnel
    Hostname server2.com
    User $YOUR_USERNAME
    Port 22
    ProxyJump jumphost

...启用命令:ssh my-tunnel