ssh怎样通过代理登录远程主机

ssh怎样通过代理登录远程主机

ssh使用代理登录远程主机,一般是因为远程主机是买的国外主机,然后ip被和谐了,所以要用通过代理来登录,代理一般都是ss啦。

用法一

ssh -o "ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p" root@101.121.218.234

用法二

ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1086 %h %p" root@101.121.218.234

用法三

不写-X,则默认使用SOCKS5协议

ssh -o ProxyCommand="nc -x 127.0.0.1:1086 %h %p" root@101.121.218.234

解释:
-o:option,表示选项的意思
ProxyCommand:ssh的一个选项,man ssh的-o选项中可看到
nc:netcat
-X: 指定代理协议,有三种值:
     – 4:SOCKS v4
     – 5:SOCKS v5
     – connect:HTTPS
-x:指定代理的主机地址和端口,我例子里写127.0.0.1:1086,是因为我用的ss,它有它的本地ip和端口,当然主机地址也可以填域名。
%h %p:固定写法,我不是很清楚具体含义,但我自己的理解是真正执行时,用于替换ssh连接的主机地址和端口。
root@101.121.218.234:真正要连接的主机

用法四

编写配置文件~/.ssh/config,注意,这个配置文件在客户端一般是不存在的,直接用vim新建保存即可。
vim ~/.ssh/config

配置文件内容(*号表示所有ssh连接的主机都通过指定的代理连接,当然你也可写成指定域名,或通配符域名,例如*.test.com)。

Host *
    ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p

使用了配置文件后,ssh直接像平时正常使用就可以,它会自动读取配置文件并使用代理去连接:

ssh root@101.121.218.234
打赏

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

ssh怎样通过代理登录远程主机