SSHing através de um proxy HTTP

0

Cenário típico: Estou tentando usar o SSH através de um proxy HTTP corporativo para uma máquina remota usando saca-rolhas e recebo:

ssh_exchange_identification: Connection closed by remote host

Obviamente, há muitas razões para isso estar acontecendo - o proxy pode não permitir isso, a caixa remota pode não estar executando o sshd, etc.

Então, tentei tunelar manualmente via telnet:

$ telnet proxy.evilcorporation.com 82
Trying XX.XX.XX.XX...
Connected to proxy.evilcorporation.com.
Escape character is '^]'.
CONNECT myremotehost.com:22 HTTP/1.1

HTTP/1.1 200 Connection established

Então, a menos que eu esteja enganado ... parece que a conexão está funcionando .

Então, por que, então, não funciona via saca-rolhas?

ssh -vvv [email protected] -p 22 -o "ProxyCommand corkscrew proxy.evilcorporation.com 82 myremotehost.com 22"
OpenSSH_6.6, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Executing proxy command: exec corkscrew proxy.evilcorporation.com 82 myremotehost.com 22
debug1: permanently_set_uid: 0/0
debug1: permanently_drop_suid: 0
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6p1 Ubuntu-2ubuntu1
ssh_exchange_identification: Connection closed by remote host
    
por Siler 30.05.2014 / 20:57

2 respostas

0

É possível que você esteja tentando encapsulá-lo por meio de um proxy em relação ao qual saca-rolhas não foi projetado / testado / depurado. A home page do Corkscrew declara (textualmente):

Corkscrew has been tested with the following HTTP proxies :

Gauntlet

CacheFlow

JunkBuster

Squid

Apache's mod_proxy

Please email me if you get it to work with another proxy

Você sabe qual proxy é executado, no seu caso?

    
por 31.05.2014 / 16:05
0

Você pode verificar se o saca-rolhas está funcionando corretamente, executando o seu comando proxy diretamente na linha de comando. No seu caso, executando

corkscrew proxy.evilcorporation.com 82 myremotehost.com 22

deve produzir saída como

SSH-2.0-OpenSSH_6.7

Ou seja. o banner do protocolo SSH do servidor remoto. Se isso não funcionar, então algo está errado com seu proxy e / ou seu servidor ssh.

    
por 01.06.2014 / 11:36