Erro no túnel ssh “ssh_exchange_identification: conexão fechada pelo host remoto”

10

Estou tentando usar um túnel ssh da máquina do escritório para a minha máquina doméstica e recebo um erro quando tento usá-lo.

O que estou fazendo é iniciar um shell assim:

ssh -gL 12345:my.home.domain:22 my.home.domain

Isso está me dando uma concha adequada, não há problema. O que normalmente faço então é ssh na minha máquina doméstica por meio desta máquina de escritório, assim:

ssh -p 12345 127.0.0.1

Isso sempre funcionou para mim, até a semana passada, quando eu configurei um novo sistema na minha máquina doméstica (alternando do Ubuntu para o Debian). Agora eu recebo um erro. Ainda posso abrir minha conexão ssh inicial, mas quando tento usar esse túnel, recebo (na máquina do escritório) este erro:

ssh_exchange_identification: Connection closed by remote host

Além disso, quando isso acontece, o shell aberto pelo qual eu tenho o tunelamento faz com que essa linha seja cuspida nele:

channel 3: open failed: connect failed: Connection timed out

Nesse ponto, estou perdida. Se mais alguma informação for necessária, será um prazer publicá-la.

============= além disso ==============

Depois de mexer ainda mais, descobri que estou recebendo uma resposta diferente do servidor (que é minha máquina doméstica) quando tento telnetar nas várias portas. Se eu tentar:

telnet my.home.domain 22

Eu recebo de volta:

Trying <my ip address>...
Connected to <my domain>.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2

Qual é o que eu esperaria. Depois de configurar o túnel, e depois fazer a telnet para isso, vejo esta resposta:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

============== e ainda mais ==================

Conforme sugestão de kbulgrien , aqui está a saída da máquina cliente com a opção -v:

ssh -vp 24600 127.0.0.1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 de março de 2012
debug1: Lendo dados de configuração / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config linha 19: Aplicando opções para *
debug1: Conexão à porta 24600 127.0.0.1 [127.0.0.1].
debug1: conexão estabelecida.
debug1: arquivo de identidade /home/jacob/.ssh/id_rsa type -1
debug1: arquivo de identidade /home/jacob/.ssh/id_rsa-cert type -1
debug1: arquivo de identidade /home/jacob/.ssh/id_dsa tipo -1
debug1: arquivo de identidade /home/jacob/.ssh/id_dsa-cert type -1
debug1: arquivo de identidade /home/jacob/.ssh/id_ecdsa tipo -1
debug1: arquivo de identidade /home/jacob/.ssh/id_ecdsa-cert type -1
ssh_exchange_identification: conexão fechada pelo host remoto

Jacob Ewing
fonte
Uma causa do ssh_exchange_identification: Connection closed by remote hosterro está relacionada ao host de conexão listado na /etc/hosts.deny.
Zoredache
Hm - se eu criar /ets/hosts.deny nessa máquina, todas as linhas serão comentadas.
Jacob Ewing
Posso sugerir a adição -vao comando ssh que falha? A saída resultante fornece qualquer outra indicação de falha (ie channel 1: open failed: administratively prohibited: open failed).
kbulgrien
2
Desculpe-me, apenas me ocorreu que é útil ter -vnos comandos tunnel e ssh com falha (procurando algo mais do que channel 3: open failed: connect failed: Connection timed out). Vale ressaltar que é possível adicionar múltiplos -v(até três) para aumentar a verbosidade. Eu não publicaria necessariamente toda a vomitação, mas pode valer a pena ler por palavras que parecem indicar um problema.
kbulgrien

Respostas:

1

Talvez se você tiver mais de 10 sessões do ssh 10 aguardando inserir a senha, você tem esse tipo de erro, lembro-me que foi um bug recente do ssh, se você verificar isso, use o comando abaixo

for i in {1..15};do ssh -fNt [email protected] & >/dev/null ;done
c4f4t0r
fonte
0

Algo como isso aconteceu em uma instalação recente. Nessa situação, o /etc/hosts.deny existia e não tinha configurações que explicitamente negassem o acesso, portanto as circunstâncias parecem semelhantes. Era necessário alterar /etc/hosts.allow para adicionar algo como:

sshd: 192.168.127.0/255.255.255.128

Os detalhes do IP precisam ser ajustados às suas necessidades ou substituídos por ALLse não houver preocupação em permitir ssh de qualquer lugar.

Após fazer as alterações, pare e reinicie o sshd.

Respostas votadas para a pergunta a seguir fornecem mais exemplos.

SSH hosts.deny e hosts.allow

Aqui está o testemunho de outra pessoa que vincula a mensagem de erro à solução.

Como corrigir: ssh_exchange_identification: Conexão encerrada por um problema de host remoto ao efetuar login com SSH

Kbulgrien
fonte
Hmm - infelizmente isso não resolveu para mim. Eu acho que minha situação difere da do exemplo. Eu sou capaz de ssh na porta 22 sem problemas. É só quando tento fazer um túnel através de outra porta que recebo os erros mencionados.
Jacob Ewing
Concedido que o túnel é uma diferença distinta. Dado isso, isso ajuda: discussion.dreamhost.com/thread-97951.html ? Eu também encontrei referências a uma indicação de que desinstalar e reinstalar o pacote sshd em sistemas do tipo debian corrige um problema com chaves que causam o comportamento que você descreve ( debate.dreamhost.com/thread-97951.html et. Al.) .
kbulgrien
Você tem o sshd (openssh-server) instalado nos dois sistemas, certo?
precisa saber é o seguinte
Yupyup. Eu venho fazendo isso há muito tempo e só tive problemas na semana passada depois de mudar para o Debian na minha máquina doméstica (o servidor). Vou tentar a sua sugestão de desinstalar o sshd quando chegar em casa hoje à noite.
Jacob Ewing
0

Eu tive o mesmo problema e, no final, resolvi o problema, corrigindo o /etc/network/interfaces:

auto eth0
iface eth0 inet static

ou

auto eth0
iface eth0 inet dhcp

sem essa configuração, nunca recebo conexão reversa ao meu túnel ssh.

dr4ck0
fonte
0

No meu caso, tive que inserir /etc/ssh/sshd_configna máquina do gateway as seguintes linhas:

Match User <username>
   GatewayPorts yes

Veja mais detalhes aqui

Espero que isto ajude!

floatingpurr
fonte