SSH通过代理连接
Posted 关灯吃面
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH通过代理连接相关的知识,希望对你有一定的参考价值。
从目前网上的资料来看,通过代理来连接ssh有2种方式:
- 一种是用Corkscrew实现http代理隧道连接,corkscrew官方主页;
- 另外一种是利用connect能实现Sock5和http代理隧道连接,connect官方主页(connect项目现已撤出,详细介绍请看:点这里)。
先来介绍一下Corkscrew:
1.解压并编译安装:
https://pkgs.org/download/corkscrew 下载deb软件包地址
安装deb软件包 dpkg -i xxx.deb
wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gztar -xzvf corkscrew-2.0.tar.gz cd corkscrew ./configure make install
2.添加配置到ssh用户目录,/root/.ssh/config (编辑该配置文件)写入:
Host * ProxyCommand corkscrew http-proxy.example.com 8080 %h %p
注意http-proxy.example.com为http代理地址(例如proxy.cmcc或者ip)根据实际更改,后面的8080为http代理端口。
如果HTTP代理需要用户名/密码验证,则需要写上代理验证文件。假设代理服务器是192.168.0.1:808。用户名密码是name:pass,打算存放在~/.ssh/proxyauth。则有
ProxyCommand corkscrew 192.168.0.1 808 %h %p ~/.ssh/proxyauth
新建/roo/.ssh/proxyauth文件,写上:
name:pass
接下来就可以直接连接了:
ssh root@112.33.9.154 -p 22
在第二次登录时就可看到上次登录ip,从而判断是否是通过代理连接了。
参考:
http://www.cnblogs.com/JoJosBizarreAdventure/p/5892355.html
http://bolg.malu.me/html/2011/1809.html
http://blog.csdn.net/asx20042005/article/details/7041294
以上是关于SSH通过代理连接的主要内容,如果未能解决你的问题,请参考以下文章
如何强制 Git 通过其 ssh 连接使用 socks 代理?
Spring boot Resttemplate通过ssh隧道的动态代理设置连接不识别远程DNS