禁用本地地址的开瓶器

时间:2012-05-16 00:17:20

标签: ssh local http-proxy

我有一个关于Corkscrew的问题,我用它来通过HTTP代理获得SSH。 SSH适用于外部主机,但不适用于本地主机。我怎么能禁用 SSH通过HTTP-Proxy连接到本地服务器?我想这就是为什么我得到的问题:

root@V01-XXXX:~# ssh root@172.XX.XX.8
Proxy could not open connnection to 172.XX.XX.8:  Forbidden
ssh_exchange_identification: Connection closed by remote host

我的/ etc / ssh / ssh_config文件包含:

Host *
ProxyCommand /usr/bin/corkscrew proxy.ezorg.nl 8080 %h %p

提前致谢!

4 个答案:

答案 0 :(得分:5)

首先,您可以考虑将配置放在~/.ssh/config而不是/ etc / ssh / ssh_config中。

要仅为某些特定主机使用开瓶器,请不要使用星号,而是列出特定主机,例如:

Host external.com example.com
ProxyCommand /usr/bin/corkscrew proxy.ezorg.nl 8080 %h %p

如果连接到特定主机,也可以否定模式以仅设置代理命令。

Host !192.168.0.? !*.local 
ProxyCommand /usr/bin/corkscrew proxy.ezorg.nl 8080 %h %p

将匹配除192.168.0.0/24中的主机和.local TLD内的主机之外的所有主机

答案 1 :(得分:2)

您可以向ssh_config添加行,以禁止对某些主机使用代理。类似的东西:

Host *.local host1 host2 host3
    ProxyCommand none

答案 2 :(得分:1)

谢谢大家的帮助。在喘息之后,它没有解决localhost(我找不到原因),但完美地与之合作:

Host 127.0.0.1
ProxyCommand none

Host *
ProxyCommand /usr/bin/corkscrew <proxy> <proxyport> %h %p 

答案 3 :(得分:0)

扩展@Michael Slade的答案,.ssh/config中的以下内容有效:

Host localhost
ProxyCommand none

Host *
ProxyCommand corkscrew proxy.com ....

ssh只读取第一次出现的参数。