首页主机资讯Ubuntu如何使用SSH代理跳转

Ubuntu如何使用SSH代理跳转

时间2026-01-15 03:49:03发布访客分类主机资讯浏览218
导读:Ubuntu 使用 SSH 代理跳转 一、ProxyJump 一步直达 适用场景:本机可直接访问跳板机 B,跳板机可直接访问目标机 A,希望在本机直接执行 ssh 到 A。 命令方式: 基本用法:ssh -J userB@B_host...

Ubuntu 使用 SSH 代理跳转

一、ProxyJump 一步直达

  • 适用场景:本机可直接访问跳板机 B,跳板机可直接访问目标机 A,希望在本机直接执行 ssh 到 A。
  • 命令方式:
    • 基本用法:ssh -J userB@B_host userA@A_host
    • 指定端口:ssh -J userB@B_host:22 userA@A_host -p 22
  • 配置文件方式(推荐,便于复用):
    • 编辑:nano ~/.ssh/config(权限建议设为 0600
    • 示例:
      Host jumpbox
          HostName B_host
          User userB
          Port 22
      
      Host targetbox
          HostName A_host
          User userA
          Port 22
          ProxyJump jumpbox
      
    • 连接:ssh targetbox
  • 说明:ProxyJump 是 OpenSSH 7.3+ 内置指令,简洁安全,适合日常使用。

二、旧版 OpenSSH 使用 ProxyCommand 兼容

  • 当本机 OpenSSH 版本较老不支持 -J 时,可用 ProxyCommand 通过跳板转发:
    • 命令方式:
      ssh -o ProxyCommand="ssh userB@B_host nc %h %p" userA@A_host
      
    • 配置文件方式:
      Host targetbox
          HostName A_host
          User userA
          Port 22
          ProxyCommand ssh userB@B_host nc %h %p
      
  • 依赖说明:部分系统默认未安装 netcat-openbsd/nc,可先安装(如 sudo apt install netcat-openbsd),或改用其他命令(见下一节)。

三、通过 HTTP/HTTPS 或 SOCKS 代理跳转

  • 适用场景:本机无法直接连跳板机,但可通过公司/家庭HTTP/HTTPS 或 SOCKS 代理访问跳板机。
  • 安装工具:
    • Debian/Ubuntu:sudo apt-get update & & sudo apt-get install connect-proxy
  • 命令方式(以 SOCKS5 为例):
    ssh -o ProxyCommand="connect -S 127.0.0.1:1080 %h %p" user@target_host
    
  • 配置文件方式:
    Host target_via_proxy
        HostName target_host
        User user
        ProxyCommand connect -S 127.0.0.1:1080 %h %p
    
  • 提示:将 127.0.0.1:1080 替换为你的实际代理地址与端口;如使用 HTTP 代理,将 -S 改为 -H

四、常见扩展与排错

  • 多跳链路:可链式指定多个跳板,例如 ssh -J user1@hop1,user2@hop2 user3@dest;或在配置中使用 ProxyJump jump1, jump2
  • 本地端口转发配合跳板:先连上跳板并映射端口,再访问映射端口即可到达目标服务(适合浏览器或客户端不支持 SOCKS 的场景)。
  • 稳定性增强:长时间会话建议使用 autossh,如 autossh -M 2000 -N -f -L 2222:A_host:22 userB@B_host,随后 ssh -p 2222 userA@localhost 连接目标。
  • 权限与连通性检查:
    • 确保跳板机允许 TCP 转发(服务器端 sshd_configAllowTcpForwarding yes,默认通常为开启;修改后 sudo systemctl restart sshd)。
    • 使用密钥登录可避免频繁输入密码并提升可靠性(在跳板与目标机分别部署公钥到 ~/.ssh/authorized_keys)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu如何使用SSH代理跳转
本文地址: https://pptw.com/jishu/779419.html
ubuntu lnmp故障排查方法 Ubuntu如何设置SSH自动登录

游客 回复需填写必要信息