SSH via HTTP Proxy
这是一个困扰我许久的问题,因为自己比较懒所以一直没有去就寻根问底,需要用到 SSH Tunnel 时就用 PuTTY 来绕过这个问题。
问题的产生:公司的网络环境需要走 HTTP Proxy 才能访问外部 Internet 。工作机用 Ubuntu ,无论是在终端 SHELL 中手动设置 http_proxy 还是用 gnome-network-properties GUI 设置全局环境变量,对在命令行中用 ssh
都不起作用。
解决方法: Debian
/ Ubuntu
下可以安装 connect-proxy
包,Arch Linux
上需要从 AUR 安装 connect
这个包。
以下是包描述:
Description: Establish TCP connection using SOCKS4/5 or HTTP tunnel
connect-proxy
is a simple relaying command to make tunnel TCP connection via SOCKS or HTTPS proxies. It is mainly intended to be used as proxy command of OpenSSH.
安装后编辑一下 ~/.ssh/config
给需要的主机或 IP 地址段配置代理,例如:
1 | # Digital Ocean |
参考: Gist
保存,再试一下 ssh 到 tux.im 搞定!
更多 connect-proxy
的用法请 RTFM ;-)
注意:这样的话也带来了另外一个问题,若切换到家中或其它不需要代理的环境,就会出现连不上 tux.im 的情况。至于如何解决,大家自行动脑筋吧;-)
还是那句话:世上无难事,只怕有心人。
注意: tux.im 并非本人所有,只是被用来举例。