最简单的SSH代理客户端实现

linux February 22 2014


 我的SSH帐号是通过香港的虚拟主机附赠的,目前主要是用**浏览器插件(比如SwitchySharp)+ MyEnTunnel/Bitvise + 远程主机SSH代理服务**的模式实现的。

 一直以来相安无事,但前几天主机商把SSH服务的监听端口由默认的22改为了2289,在家里将相应的端口也改过来即可恢复正常,但在公司就没那么幸运了。公司内部网络对外网的端口访问作了限制,只能访问标准的如80,8080,21,22等端口,很不幸,2289端口不在此范围内。几天下来出不了墙,很是焦虑,后来在公司的几台测试用linux服务器上通过telnet myhost.com 2289测试可用,太幸运了,至少找到了一个可供代理出口的机器,但是在linux机器上我用什么软件来替代MyEnTunnel/Bitvise呢,后来基于这个思路去寻找相关替代品,终于在走了这段弯路之后,发现了SSH命令本身就具备动态转发的功能。十分简单:

usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] 只需挑出几个必需的参数即可:

root@testserver [~]# ssh -D 0.0.0.0:7077 -p 2289 myname@myhost 然后根据提示输入相应的用户密码即可,这样就完成了在公司内网代理服务器的实现(相对于我的办公电脑它是服务器,相对远程虚拟主机它是客户端)。当然也可以写自动化shell脚本,但因为是公用测试机器,就没这个必要了,而且可避免其他人看到我的账密信息。

参数说明:   -D 表示启用基于socks的动态端口转发,监听本地7077端口,0.0.0.0:7077表示将所有IP发送到本地7077端口的请求转发到远程myhost主机2289端口

-p 远程接收请求的SSH服务端口

原文链接:http://ichatter.cn/e6-9c-80-e7-ae-80-e5-8d-95-e7-9a-84ssh-e4-bb-a3-e7-90-86-e5-ae-a2-e6-88-b7-e7-ab-af-e5-ae-9e-e7-8e-b0.html


欢迎来到阿J小虫的博客

Follow @ichatter on GitHub

最新评论

推荐内容