SSH 通过跳板机直接访问内网机器

正文

ProxyJump

需要 OpenSSH 7.3 以上版本才可以使用 ProxyJump, 使用下列命令查看OpenSSH 版本:

$ ssh -V

ProxyJump 命令行使用方法:

ssh -J [email protected]:port1,[email protected]:port2

可以直接使用上述命令通过跳板机直接登录内网机器,比如:

ssh username@目标机器IP -p 22 -J username@跳板机IP:22

如果需要通过多个跳板机则以 , 分割:

ssh username@目标机器IP -p 22 -J username1@跳板机IP1:22,username2@跳板机IP2:22

如果你觉得每次都需要加上 -J 的配置很多麻烦,可以写到配置文件里。修改配置文件 ~\.ssh\config,默认没有需要自己创建。增加以下内容:

Host target    # 代表目标机器的名字
    HostName 目标机器 IP    # 这个是目标机器的 IP
    Port 22    # 目标机器 ssh 的端口
    User username_target    # 目标机器的用户名
    ProxyJump username@跳板机IP:port

Host 10.10.0.*    # 使用通配符 * 代表 10.10.0.1 - 10.10.0.255
    Port 22    # 服务器端口
    User username    # 服务器用户名
    ProxyJump username@跳板机IP:port

也可以为跳板机器一个“别名”方便使用:

Host tiaoban1    # 代表跳板机 1
    HostName 跳板机 1 的 IP
    Port 22    # ssh 连接端口
    User username1    # 跳板机 1 的用户名

Host tiaoban2    # 代表跳板机 2
    HostName 跳板机 2 的 IP
    Port 22    # ssh 连接端口
    User username2    # 跳板机 2 的用户名

Host target    # 代表目标机器的名字
    HostName 目标机器 IP    # 这个是目标机器的 IP
    Port 22    # 目标机器 ssh 的端口
    User username_target    # 目标机器的用户名
    ProxyJump tiaoban1,tiaoban2

Host 10.10.0.*    # 使用通配符 * 代表 10.10.0.1 - 10.10.0.255
    Port 22    # 服务器端口
    User username    # 服务器用户名
    ProxyJump tiaoban1,tiaoban2

使用方法:

ssh target
ssh 10.10.0.1
ssh username@target -p22
ssh username@10.10.0.1 -p22

ProxyCommand

如果 OpenSSH 版本低于 7.3 可以使用 ProxyCommand达到同样的效果。

ProxyCommand 命令行使用方法:

ssh username@目标机器IP -p 22 -o ProxyCommand='ssh -p 22 username@跳板机IP -W %h:%p'

同样可以在 ~/.ssh/config 文件中增加配置文件:

Host tiaoban   # 任意名字,随便使用

    HostName 跳板机的 IP,支持域名

    Port 22      # 跳板机端口

    User username_tiaoban       # 跳板机用户

 

Host target      # 同样,任意名字,随便起

    HostName 目标服务器 IP    # 真正登陆的服务器,不支持域名必须IP地址

    Port 22   # 服务器的端口

    User username   # 服务器的用户

    ProxyCommand ssh tiaoban -W %h:%p



Host 10.10.0.*      # 可以用*通配符

    Port 22   # 服务器的端口

    User username   # 服务器的用户

    ProxyCommand ssh tiaoban -W %h:%p

使用方法同上:

ssh target
ssh 10.10.0.1
ssh username@target -p22
ssh username@10.10.0.1 -p22

参考

  1. ssh如何通过跳板机直接访问到后端服务器(Mac&Linux&Windows解决方案)
  2. SSH命令行帮你实现六种“贴心”的安全应用
  3. [转]SSH隧道:内网穿透实战
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要基于SSH隧道和Chrome插件SwitchyOmega通过跳板机访问内网机器,你可以按照以下步骤进行设置: 1. 首先,确保你可以通过SSH登录到跳板机跳板机是一个可以访问内网机器的中间机器。 2. 在本地计算机上安装SSH客户端,比如OpenSSH(Windows上可以使用PuTTY)。 3. 使用SSH客户端创建一个SSH隧道,将本地计算机的某个端口与跳板机的某个端口进行绑定。例如,如果你希望访问内网机器SSH服务(默认端口22),可以执行以下命令: ``` ssh -L 8888:内网机器IP:22 用户名@跳板机IP ``` 这将在本地计算机的8888端口上创建一个SSH隧道,将流量转发到跳板机再转发到内网机器SSH服务。 4. 安装Chrome浏览器插件SwitchyOmega,它可以帮助你设置指定规则的代理服务器。 5. 打开SwitchyOmega插件的选项页面,并创建一个新的情景模式(Profile),将代理服务器设置为本地计算机上创建的SSH隧道,即将代理服务器配置为`127.0.0.1:8888`。 6. 在SwitchyOmega中设置规则,将需要通过SSH隧道访问内网网址或域名配置为使用刚刚创建的情景模式。 7. 确保SwitchyOmega插件已经启用,并且选择了刚刚创建的情景模式。 现在,当你访问被配置为使用SSH隧道的内网网址或域名时,Chrome浏览器将通过SSH隧道连接到跳板机,然后再通过跳板机连接到内网机器,实现访问内网机器的功能。 请注意,这只是一种基于SSH隧道和SwitchyOmega插件的方法,你也可以尝试其他工具和方法来实现类似的目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值