Linux中SSH客户端通过代理连接主机

Linux中SSH客户端通过代理连接主机

我真的很挣扎。

我的主机 (A) 位于代理/防火墙 (PF) 后面,需要连接到主机 H。

代理已配置 HTTP/FTP/SOCK 代理,并且我在 Web 浏览器、wget 等中配置没有问题。

但是当我使用...

ssh H //to connect my host 

我没有成功通过代理。它似乎尝试直接连接而不是通过 PF。

我使用的是 Ubuntu 12.10。

答案1

ssh没有本机SOCKS客户端支持,您需要使用 aProxyCommand来实现,例如socat

ssh -o ProxyCommand='socat - SOCKS4A:myproxy:%h:%p,socksuser=nobody' user@host

或者使用诸如tsocksdante之类的东西socksify来透明地使用 SOCKS 来传输 TCP 流量。

对于 SOCKS5 为socat2:

ssh -o ProxyCommand='socat - "SOCKS5:%h:%p|tcp:myproxy:1080"' user@host

对于带有 2 的 HTTP 代理CONNECT方法socat

ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host

答案2

查看开瓶器或者代理隧道(请注意,某些网络中的本地策略禁止通过代理进行 SSH 隧道传输)。

答案3

对于 HTTP 代理 CONNECT 方法socat

代理命令:socat - PROXY:myproxy:%h:%p,proxyport=myproxyport

相关内容