Estou em uma rede que possui apenas um servidor http para acessar a internet. Quero conectar ao meu servidor via ssh.

Se eu tentar estabelecer uma conexão ssh de qualquer maneira:

ssh myserver -p 1234

Eu recebo um cursor piscando. O log no meu servidor não mostra uma tentativa de conexão.

Então, minha primeira idéia foi usar o saca-rolhas para encapsular o tráfego ssh através do http. Mas se eu configurar o saca-rolhas como meu ProxyCommand e tentar conectar, ele também falhará:

ssh myserver -p 1234

Proxy could not open connnection to myserver:  Tunnel or SSL Forbidden
ssh_exchange_identification: Connection closed by remote host

Os logs do servidor também não mostraram nenhuma tentativa de conexão. Então, pensei que talvez o proxy bloqueie todo o tráfego que não passa pela porta 80 ou 443. Alterei a porta ssh dos servidores para 443. Ainda não consegui conectar, mas uma das mensagens de erro desapareceu:

ssh myserver -p 443  

ssh_exchange_identification: Connection closed by remote host

Os logs do servidor, novamente, não mostraram uma tentativa de conexão. A última coisa que tentei foi usar o saca-rolhas manualmente:

corkscrew myproxy 8080 myserver 443

SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3

Isso me dá a string de versão dos servidores ssh. Mas depois disso nada mais acontece. O cliente ssh parece travar. Enquanto isso, os logs do servidor mostram esta mensagem:

Did not receive identification string from 1.2.3.4

Portanto, parece ser capaz de estabelecer uma conexão. Suspeito que o cliente consiga se conectar inicialmente ao servidor e o servidor responda com sua sequência de versões. Mas quando o cliente tenta responder, é interceptado pelo proxy.

Mas, neste momento, estou sem ideias do que mais eu poderia tentar.

Cedric
fonte