通过代理连接 ssh 服务器

通过代理连接 ssh 服务器

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

本文介绍了几种通过网络代理和SSH隧道连接远程服务器的方法,包括SSH隧道、SSH+ncat使用HTTP(s)代理、SSH+ncat使用Socks代理、SSH+corkscrew使用HTTP(s)代理、SSH+nc使用无身份校验Socks代理。同时强调了SSH的强大功能,建议深入研究。

🎯

关键要点

  • 在复杂的网络环境中,网络代理和SSH隧道可以帮助连接远程服务器。
  • 使用SSH隧道连接服务器的基本命令格式为:ssh ${ssh-user}@${ssh-host} -o ProxyCommand="ssh ${jump-host-user}@${jump-host} -p ${jump-host-port} -W %h:%p"。
  • 通过ncat使用HTTP(s)代理连接服务器的命令为:ssh ${ssh-user}@${ssh-host} -o ProxyCommand="ncat --proxy ${proxy-ip}:${proxy-port} --proxy-type http --proxy-auth ${proxy-account}:${proxy-password} %h %p"。
  • 通过ncat使用Socks代理连接服务器的命令为:ssh ${ssh-user}@${ssh-host} -o ProxyCommand="ncat --proxy ${proxy-ip}:${proxy-port} --proxy-type socks5 --proxy-auth ${proxy-account}:${proxy-password} %h %p"。
  • 使用corkscrew通过HTTP(s)代理连接服务器的命令为:ssh ${ssh-user}@${ssh-host} -o "ProxyCommand corkscrew ${proxy-ip} ${proxy-port} %h %p [${auth-file-path}]"。
  • 使用nc工具连接无身份校验的Socks代理的命令为:ssh ${user}@${host} -o ProxyCommand="nc -X 5 -x ${proxy-ip}:${proxy-port} %h %p"。
  • 可以通过编辑~/.ssh/config文件来持久化SSH连接配置。
  • SSH功能强大,支持远程服务器连接、socks代理架设、文件传输和远程命令执行等。
  • SSH config的适当配置可以有效管理多台服务器。
➡️

继续阅读