通过代理连接 ssh

Published in categories blog      tagged with #ssh  #terminal  #socks5 

安装 Surge 以后,通过

    echo export ALL_PROXY=socks5://127.0.0.1:6153
    curl ip.gs

可以将终端翻墙,但是依然无法连接 ssh,一直通过 Proxifier 来连接 ssh 服务器。

下面介绍通过ssh代理(跳板)在终端连线ssh服务器

使用nc命令(netcat)实现,假设本地SSH代理的监听端口是6153,则ProxyCommand为

    ProxyCommand nc -x 127.0.0.1:3000 %h %p

在命令行里:

    ssh -i ~/Workspace/keys\&/baolei.pem -oProxyCommand="nc -x 127.0.0.1:6153 %h %p" ubuntu@52.77.156.128

也可以添加到~/.ssh/conf里:

    # ---ssh
    Host work
            Hostname 52.77.156.128
            User ubuntu
            PreferredAuthentications publickey
            IdentityFile ~/Workspace/keys&/baolei.pem
            ProxyCommand nc -x 127.0.0.1:6153 %h %p
    #---

nc也可以用于HTTPS代理,这需要指定所使用的协议,即添加 -X connect 参数。比如ssh_config中的例子

    ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p

netcat也有很多其他用途,有兴趣可以看看

References:

  1. https://www.slahser.com/2016/10/03/Migrate-fish88-to-Surge/
  2. https://medium.com/@scomper/surge-%E7%9A%84%E5%A2%9E%E5%BC%BA%E6%A8%A1%E5%BC%8F-tun-cc0aaad86ff5
  3. https://www.lainme.com/doku.php/blog/2011/01/%E9%80%8F%E8%BF%87%E4%BB%A3%E7%90%86%E8%BF%9E%E6%8E%A5ssh
  4. https://blog.gtwang.org/linux/linux-utility-netcat-examples/
comments powered by Disqus