SSH via Saca-rolhas para um servidor remoto não funciona

5

Eu estou tentando SSH para um servidor remoto da minha rede de faculdade (proxy). No entanto, estou recebendo esse erro sempre que tento SSH para o host

ssh_exchange_identification: Connection closed by remote host

Aqui está a descrição completa: -

Comando: -

ssh -vvv root@serverIP -p serverPort

Saída: -

OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/prashant/.ssh/config
debug1: /home/prashant/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec /usr/bin/corkscrew 144.16.192.213 8080  serverIP serverPort
debug1: identity file /home/prashant/.ssh/id_rsa type -1
debug1: identity file /home/prashant/.ssh/id_rsa-cert type -1
debug1: identity file /home/prashant/.ssh/id_dsa type -1
debug1: identity file /home/prashant/.ssh/id_dsa-cert type -1
debug1: identity file /home/prashant/.ssh/id_ecdsa type -1
debug1: identity file /home/prashant/.ssh/id_ecdsa-cert type -1
debug1: permanently_drop_suid: 1000
ssh_exchange_identification: Connection closed by remote host

Meu arquivo de configuração contém isso

Host *
ProxyCommand /usr/bin/corkscrew 144.16.192.213 8080  %h %p

Alguém pode me ajudar a resolver esse problema?

Obrigado!

    
por Prashant Singh 20.03.2013 / 00:35

1 resposta

5

Não tenho certeza se minha interpretação está correta, mas acho que é isso que está acontecendo.

A conexão é bloqueada pelo proxy. O HTTP CONNECT (que é o que o corkscrew usa para retornar ao proxy) é necessário em configurações típicas para navegar em sites HTTPS. O proxy não pode filtrar a conexão, já que ela é criptografada, e não tem outra opção senão deixar o que se parece vagamente com uma conexão SSL. (SSL e SSH podem ser distinguidos, mas muitos proxies não incomodam) No entanto, quase todos os sites HTTPS estão na porta padrão (443), então os proxies geralmente só retornam conexões para a porta 443. Eu acho que “Conexão fechada pelo host remoto "É devido ao proxy soltar a conexão quando vê que você está tentando saltar para uma porta diferente.

Se puder, altere a configuração do servidor SSH para que ele escute na porta 443. “O proxy não pôde abrir a conexão para serverIP: Serviço indisponível” indica que o proxy está disposto a permitir a conexão, mas não há servidor escutando naquela porta. (Não há garantia de que ele não fará algum tipo de análise de tráfego e o bloqueará quando o protocolo SSH começar a ocorrer.)

Você precisa estar root na máquina de destino para fazer o servidor escutar na porta 443. Se você não estiver executando um servidor HTTPS, será fácil adicionar a linha Port 443 no arquivo sshd_config e reiniciar o arquivo. sshd process ( service ssh restart , /etc/init.d/ssh restart ou algum desses comandos).

Você pode executar um servidor SSH e um servidor HTTPS na mesma porta, já que o primeiro pacote enviado pelo cliente é suficiente para informar qual deles é solicitado. Você pode usar o multiplexador sslh (veja também este guia ).

    
por 20.03.2013 / 01:09