我可以将这些SSH隧道命令组合成一个命令吗



我有一个通过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命令,然后
Q2:我可以在~/.ssh/config中为此连接设置一个主机条目吗(允许我只键入例如ssh my-tunnel(?

我想这可以归结为以某种方式链接主机。我是新手,不太明白。。。

我遇到了这个问题,并对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

最新更新