我有一个关于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
提前致谢!
答案 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
只读取第一次出现的参数。