我有点纳闷。我在 Fedora 19 上使用 openssh-clients-6.2p2-4.fc19.x86_64。我通过控制台设置环境变量:
“导出 http_proxy=http://someproxy.officenetwork“
在同一个控制台中我尝试运行 ssh 客户端
“ssh 用户@home -p 443”
通过 ssh 端口 443 连接到我的机器(其他端口都被阻止了,在这些可用端口中,443 是最不可疑的:-)
但是 ssh 不会从环境变量中获取代理(与 lynx、curl、yum……相反)。
我知道我可以使用“corkscrew”或“netcast”来帮助我通过办公室代理获取 ssh 连接,但是当使用 egPuTTY 或 BitwiseSSH 时,我只需在设置中指定代理服务器,一切就可以正常工作。
这让我想到了一个问题:OpenSSH 是否本身支持通过本地代理进行连接,或者是否真的有必要使用变通方法(corkscrew、nc......)/另一个具有本机代理支持的客户端?
答案1
您可以为 ssh 指定代理命令,但它需要外部程序,例如connect
或socat
。根据您拥有的程序,您可以这样使用 ssh :
ssh -o ProxyCommand="socat - PROXY:proxy.net:%h:%p,proxyport=8080" login@target
或者
ssh -o ProxyCommand="connect -H proxy.net:8080 %h %p" login@target
用您的代理的正确值替换proxy.net
和。8080
举个例子,我通常设置一个bash
别名:
alias sshProxy='ssh -o ProxyCommand="connect -H proxy.net:8080 %h %p"'