Como corrigir o erro "ssh_exchange_identification: read: Connection reset by peer"?


21

Não consigo conectar ao meu servidor via ssh usando o meu computador, mas posso conectar-me a esse servidor pelo meu celular usando o termius app. Fui verificar /etc/hosts.allowe /etc/hosts.denye meus iptables, e eu ALSE procurou google, parece nenhuma resposta se encaixa este problema. Eu não sei como resolver isso, aqui está a ssh -v 183.17.228.80saída

debug1: Connecting to 183.17.228.80 [183.17.228.80] port 22.
debug1: Connection established.=======================   
debug1: permanently_set_uid: 0/0   
debug1: SELinux support disabled  
debug1: key_load_public: No such file or directory    
debug1: identity file /root/.ssh/id_rsa type -1    
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_rsa-cert type -1      
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa-cert type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa type -1  
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa-cert type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519 type -1   
debug1: key_load_public: No such file or directory  
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_7.2p2 Ubuntu-4ubuntu2.2   
ssh_exchange_identification: read: Connection reset by peer

Eu posso executar ping neste servidor, aqui está o telnet

telnet 183.17.228.29 22  
Trying 183.17.228.29...  
Connected to 183.17.228.29.  
Escape character is '^]'.                                                                 
Connection closed by foreign host.

Pode querer verificar se você tem o DenyHosts instalado, o DenyHosts tem seus próprios arquivos de permissão e negação de hosts.
Robby1212

tem certeza de que o software que você está executando no PC é compatível com todos os modos de criptografia SSH?
Tharaka Devinda

como já referi, tenho verificado arquivos hosts, não para DenyHosts
user3054879

Eu não tenho certeza, talvez o algoritmo encrytion era diferente, mas o meu cliente foi putty .... mas posso ssh para o mesmo servidor de terminal no IOS
user3054879

Do caminho dos arquivos-chave, suponho que você esteja se conectando como root. Isso geralmente não está ativado; veja a sua configuração sshd. ssh -vvvpode fornecer mais informações.
ridgy 25/05

Respostas:


12

Apenas reinicie o servidor que você deseja ssh. Funcionou para mim, antes eu estava enfrentando o mesmo problema.


11
Não foi possível encontrar a causa raiz, mas a reinicialização funcionou para mim.
Raghavendra N

2
Eu encontrei o mesmo problema quando ssh no meu servidor gratuito na AWS. É causado pelo servidor que está esgotando a memória. Reiniciar funciona.
leon

@ thistleknot, a reinicialização funciona para mim e é uma solução rápida e fácil. Nada de horrível nisso. Na verdade, eu não sei o que causou o problema, mas a reinicialização corrigiu algo.
CousinCocaine

Se a reinicialização funcionou, provavelmente não é um problema de configuração, mas um problema de recurso. Talvez aumentar a prioridade do ssh possa ter funcionado.
31919 JohnRos

11
servidor de reinicialização é uma sugestão muito, muito ruim.
Hossein Vatani 13/11/19

8

Na verdade, isso significa que seu IP está na lista negra do servidor. Tente colocar seu endereço IP na lista de permissões para poder fazer login. Você pode dar uma olhada na lista / etc / hosts para ver se o endereço IP do seu servidor mudou.


7
Isso realmente não é necessariamente o caso.
Sempaiscuba

2
Isso parecia verdade para mim. Descobri que meu servidor Cloudways havia colocado na lista negra meu IP residencial e precisava incluí-lo na lista de permissões manualmente.
Ryan

O problema desapareceu após algumas horas, não sei por que, mas não precisava reiniciar.
Salem F

Obrigado pelo comentário re: "O servidor Cloudways havia colocado na lista negra meu IP doméstico" - isso acabara de acontecer conosco - na lista de permissões manualmente e tudo de bom.
Jules Matthews

1

O erro acima ocorre quando você tem um limite de falha na tentativa de autenticação no servidor e possui muitas chaves ssh no seu cliente (mais do que o valor de MaxAuthTries)

O que você pode tentar é aumentar o valor de MaxAuthTries e reiniciar o daemon sshd. Ou você pode limitar o número de chaves em seu ~/.sshdiretório e usar subdiretórios e ~/.ssh/configarquivos para definir a chave por host / grupo de hosts


Eu tentei isso, mas não, na verdade, eu quase tentou cada método que pode ser encontrada na internet, eu acho que a chave era algoritmo de criptografia negeotiation, mas eu não como corrigi-lo
user3054879

2
o que você tentou? atualize sua pergunta
Romeo Ninov 25/05

1

A maneira como resolvi o problema foi acessar a máquina host e executar alguns comandos.

sudo mkdir /var/run/sshd
sudo chmod 755 -R /var/run/sshd
sudo service ssh restart

Fiquei conectado à máquina depois disso.


1

Eu tive a mesma coisa acontecer e precisava ssh -v 'ip addr' e então vi que precisava aceitar o certificado. Também pode haver uma ACL ou uma massa de bloqueio de regras de rota: exemplo -

O cliente Putty possui o endereço 10.xxx com firewalls impedindo a rede corporativa de conversar com os hosts DMZ, mas o seu telefone celular em 58.xxx, qualquer endereço IP público, pode falar com o host dmz que você está tentando acessar.

então, eu observava as informações ssh -v quando você tentava se conectar novamente, verifica se consegue coletar alguma informação e verifica se existem regras que impedem que você chegue ao servidor no nível do firewall ou do roteador, e não do servidor. arquivo denyhosts no próprio servidor.


0

Estou usando meu hot spot de celular para conectar-me à Web, enquanto eu trabalhava no console congelou e não consegui mais me conectar ssh_exchange_identification: read: Connection reset by peer

Tentei redefinir o SRV, mas não ajudou

Somente quando eu mudo minha conexão de rede (para um ponto de acesso em um celular diferente) eu posso conectar novamente.

NOTA: Ainda posso usar a conexão antiga para conectar-se a SRVs em um AWS diferente, estranho ...


0

Para resolver o problema, faça o seguinte:

  1. Reinicie o servidor no terminal online do servidor.

Se isso não funcionar,

  1. Edite o arquivo $HOME/.ssh/known_hosts
  2. Exclua qualquer conteúdo deste arquivo, quando ele se reconectar a qualquer servidor que você ssh, você deverá aceitar novamente as conexões.

11
-1 para a exclusão completa de known_hosts. Seria melhor editar este host específico em questão (embora eu duvide que isso ajude aqui).
David Foerster


0

Pode haver muitos motivos, mas um dos motivos mais possíveis pode ser (no meu caso) o ssh / port 22 não é permitido pelo firewall .

Você pode permitir a conexão ssh pela interface do usuário (alguns provedores permitem isso) ou se você tiver algum método alternativo para fazer login (por exemplo, o digitalocean fornece um botão do console), pode executar o comando abaixo

sudo ufw allow ssh
sudo ufw allow 22

0

Parece que o daemon ssh no servidor está travado. Tem certeza de que está em execução? Quando você telnetiza para ssh, você precisa ver uma assinatura. Algo como:

telnet unixhow.com 22
Trying 35.228.26.20...
Connected to unixhow.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1

O que eu vejo da sua saída é o daemon ssh não respondendo no lado do servidor. Eu recomendo conectar via IP-KVM (ou de alguma outra maneira) à máquina remota e reiniciar o sshd.


0

Isso pode ocorrer porque você não possui um servidor openssh em execução no ubuntu. Você pode executar o comando abaixo para verificar o status do seu servidor openssh.

ubuntu@ubuntu:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-20 11:52:16 GMT; 5min ago
  Process: 1034 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 1058 (sshd)
    Tasks: 1
   Memory: 5.1M
      CPU: 122ms
   CGroup: /system.slice/ssh.service
           └─1058 /usr/sbin/sshd -D

Mar 20 11:52:15 ubuntu systemd[1]: Starting OpenBSD Secure Shell server...
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on 0.0.0.0 port 22.
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on :: port 22.
Mar 20 11:52:16 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
Mar 20 11:52:24 ubuntu sshd[1131]: Connection closed by 10.0.2.2 port 60566 [preauth]
Mar 20 11:53:59 ubuntu sshd[1135]: Accepted password for ubuntu from 10.0.2.2 port 60654 ssh2
Mar 20 11:53:59 ubuntu sshd[1135]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Mar 20 11:57:48 ubuntu sshd[1238]: Accepted password for ubuntu from 10.0.2.2 port 61124 ssh2
Mar 20 11:57:48 ubuntu sshd[1238]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

Se o status não for active (running), você pode instalar e / ou iniciar o openssh-server. Você pode fazer isso com os comandos mostrados abaixo.

sudo apt update
sudo apt install openssh-server

0

Eu tive o mesmo problema, mas depois de reiniciar o daemon sshd, pude conectar ao host.

sudo systemctl restart sshd && systemctl status sshd

Esta é apenas uma solução temporária até você aumentar o parâmetro MaxAuthTries.


-2
  1. Verifique se o sshd está instalado e em execução no servidor.
  2. Certifique-se de que o daemon esteja instalado e iniciado. Você deve poder 'man sshd'. Eu acho que o pacote em que ele está é open-ssl, e você precisará iniciar o daemon (e pará-lo quando não precisar).

é claro que eu tenha instalado sshd, como já referi, posso ssh para o mesmo servidor de terminal no iphone ... mas massa falhou
user3054879
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.