3

我有一个关于 Corkscrew 的问题,我用它来让 SSH 通过 HTTP 代理工作。SSH 对外部主机运行良好,但不适用于本地主机。如何禁用 SSH 以通过 HTTP 代理连接到本地服务器?我想这就是我得到的问题:

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

4 回答 4

6

首先,您可以考虑将配置放入~/.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 中的主机之外的所有主机

于 2012-05-16T00:23:58.053 回答
2

您可以添加行来ssh_config禁用某些主机的代理。就像是:

Host *.local host1 host2 host3
    ProxyCommand none
于 2012-05-16T00:22:57.177 回答
1

谢谢大家的帮助。在 wheezy 上它没有解决localhost(我找不到原因),但可以完美地与:

Host 127.0.0.1
ProxyCommand none

Host *
ProxyCommand /usr/bin/corkscrew <proxy> <proxyport> %h %p 
于 2015-02-10T13:15:59.483 回答
0

扩展@Michael Slade的答案,您的.ssh/config作品中包含以下内容:

Host localhost
ProxyCommand none

Host *
ProxyCommand corkscrew proxy.com ....

仅读取第一次出现的参数ssh

于 2014-06-12T13:48:29.197 回答