ssh_exchange_identification: read: connessione ripristinata dal peer


107

Sono su OS X che prova a ssh in un server Ubuntu 12.04. Sono stato in grado di entrare in SSH - fino a quando le cose improvvisamente non hanno smesso di funzionare. Ho letto online per usare il -vdebug di questo. L'output è mostrato di seguito. Se ho SSH in una casella diversa e quindi SSH da quella casella al server sono in grado di accedere. Non ho idea di come eseguire il debug di questo problema, ma vorrei imparare.

$ ssh -v me@server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to server [IP] port 22.
debug1: Connection established.
debug1: identity file /Users/me/.ssh/id_rsa type 1
debug1: identity file /Users/me/.ssh/id_rsa-cert type -1
debug1: identity file /Users/me/.ssh/id_dsa type -1
debug1: identity file /Users/me/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: read: Connection reset by peer

Finora (su consiglio delle bacheche dei messaggi) ho cercato un file di negazione degli host , ma sulla mia macchina non è presente alcun file.

$ cat /etc/hosts.deny 
cat: /etc/hosts.deny: No such file or directory

Ho accesso come amministratore sul computer client ma non sul server.


Consiglierei di iniziare un sshdascolto su una porta alternativa, con output dettagliato, e di fornire l'output quando si tenta di connettersi ad esso. $(which sshd) -d -p 23. Se non hai la possibilità di farlo, le tue opzioni sono piuttosto limitate. La cosa migliore è ottenere qualcuno che abbia i diritti di amministratore sul server.
— Patrick,

Potrebbe essere che l'amministratore sul server abbia limitato l'accesso per qualche motivo? In ogni caso, potrei contattare quella persona.
— mdpc,

12
Il file hosts.deny e hosts.allow deve essere verificato sul server , non sul client. Inoltre, è necessario controllare i registri di sistema sul server . Se non hai accesso neanche a questi, ti consigliamo di contattare l'amministratore del server per dare un'occhiata.
— ckujau,

hai trovato una soluzione? qual'era il problema?
— MeV,

2
Elenco di host.deny compilato dall'amministratore con uno script automatico. Dato che a un certo punto ho dimenticato la password, ho avuto alcuni tentativi di accesso non riusciti, quando il mio IP è stato inserito nell'elenco hosts.deny. Questo per quanto riguarda la produttività della sicurezza troppo zelante.
— K.-Michael Aye,

Risposte:


25

La modifica improvvisa potrebbe essere il risultato di una modifica nel file di configurazione sulla sshdconfigurazione del server , ma si indica che non è possibile verificarlo o modificarlo senza il diritto di amministratore. Puoi comunque provare quanto segue se non è possibile raggiungere gli amministratori del server (in tempo).

Il registro indica solo la stringa di versione locale, è necessario controllare le versioni in sshdesecuzione sul server e sul computer intermedio.

Se queste versioni differiscono (specialmente tra la macchina locale e il server e meno tra la macchina intermedia e il server), potrebbe esserci qualche incompatibilità di negoziazione, questo è successo prima in ssh. La soluzione consisteva nell'accorciare le voci di Cipher, HostKeyAlgorithms e / o MAC, sulla riga di comando ( ssh -c aes256-ctr, ecc.) O su nel tuo /etc/ssh/ssh_config.

Dovresti cercare nelle informazioni di debug (dalla connessione via intermedia al server) i valori appropriati come argomento per la risp. -c/ Ciphers, -o HostKeyAlgorithms/ HostKeyAlgorithmsE -m/ MACscommandline. modifiche ssh_config.

Non ho avuto questo problema da un po 'di tempo, ma IIRC, quando l'ho fatto, è stato sufficiente per forzare manualmente l'impostazione di Ciphers e HostKeyAlgorithms, dopo di che ho potuto aggiornare la sshdversione del server e il problema è scomparso.


3
Nel mio caso, il sshdpacchetto del server è stato aggiornato a una versione più recente e ha comportato l'incompatibilità con la mia sshconfigurazione client corrente , come hai detto. Eliminare i miei vecchi sshfile di configurazione ha funzionato. Questa dovrebbe essere la risposta accettata.
— chakrit,

2
@chakrit come hai ripulito i tuoi vecchi file di configurazione ssh?
— Jonathan,

@Jonathan Ho montato un disco di ripristino per farlo.
— Chakrit,

16

Potresti essere stato bannato da fail2bano denyhosts. In tal caso (e anche per verificarlo), se non si desidera preoccuparsi dell'assistenza del proprio provider di server, è necessario accedere al proprio server da un altro indirizzo IP: ad esempio un altro server o la connessione di casa di un amico o un hot spot wifi o utilizzo di SSH con TOR.

Una volta effettuato l'accesso, verifica che il tuo indirizzo IP sia effettivamente visualizzato /etc/hosts.deny(sul lato server). Se è così, allora fail2bano denyhostsdeve essere davvero il colpevole.

Vedi le risposte a questa domanda per la procedura per impedire il denyhostsblocco continuo del tuo indirizzo. Per fail2bantrovare il tuo IP iptables -L --line-numbere sbloccarlo iptables -D <chain> <chain number>, controlla i dettagli su howtoforge .

Potresti voler aggiungere il tuo indirizzo IP fail2bane le denyhostswhitelist (rispettivamente /etc/fail2ban/jail.conf, riga ignoreipe /var/lib/denyhosts/allowed-hosts, se necessario, crearlo (ma fai attenzione che il percorso potrebbe essere diverso sulla tua distribuzione)) per evitare che il problema si ripeta.


9

Sul server host, rimuovere ssh pub.key che si trova qui: ~/.ssh/authorized_keysper il tuo mac. Quindi tail -f /var/log/auth.logmentre apri un altro terminale e prova di nuovo a ssh ssh -v me@server. Se viene richiesta una password, si è verificato un problema con la chiave ssh. Se stai ancora vedendo la risposta 'ssh_exchange_identification: leggi: connessione reimpostata dal peer', allora dovresti essere in grado di identificare quale sia il problema dalla voce di registro nel file '/var/log/auth.log' dopo il tuo tentativo fallito per accedere.

Se non riesci ancora a connetterti, pubblica qui la voce registrata dal file auth e rivedrò la mia risposta.


Non è necessario eliminare la chiave SSH in alcuni casi. Vai direttamente a tail -f /var/log/auth.log e controlla i tentativi recenti.
— Jack Robson,

6

Ciò può accadere se nella rete sono presenti più macchine con lo stesso indirizzo MAC (ad esempio, se si esegue una copia di una macchina virtuale e si dimentica di modificare il MAC).


4

Lo stavo ottenendo a causa dei nameserver del mio ISP in /etc/resolv.conf. Questi server dei nomi sono spesso sovraccarichi e se la ricerca DNS inversa non riesce sshd, la connessione verrà interrotta. Ho risolto il problema utilizzando server dei nomi più affidabili, ad es 8.8.8.8.


4

Ho dovuto affrontare lo stesso problema. Avrei aperto con successo la sessione ssh ma dopo qualche tempo sarebbe stato ripristinato. Quando ho provato a connettere immediatamente il guadagno, ho ricevuto l'errore "Connessione rifiutata". quando ho eseguito il debug della sessione ho ricevuto questo messaggio nel momento in cui la connessione veniva ripristinata

debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1  
debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1  
debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1  
debug1: channel 0: free: client-session, nchannels 1                             
debug3: channel 0: status: The following connections are open:                   
  #0 client-session (t4 r0 i0/0 o0/0 fd 4/5 cfd -1)                              

debug3: channel 0: close_fds r 4 w 5 e 6 c -1                                    
Read from remote host 10.x.y.z: Connection reset by peer                    
Connection to 10.x.y.z closed.                                              
debug1: Transferred: stdin 0, stdout 0, stderr 100 bytes in 1029.9 seconds       
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 0.1                      
debug1: Exit status -1                                                           

A questo punto mi sono reso conto che c'era un conflitto di indirizzi IP sulla rete. Ho cambiato in un altro indirizzo e il problema è stato risolto


2
Downvotes, cosa c'è di sbagliato nella risposta? Può ancora essere un caso valido da controllare quando si scende in un elenco, forse forse non comune tra gli altri.
— Pysis,

@Pysis: risposta corretta, migliorata
— Daniel

3

Il registro indica che il lato server interrompe la connessione. Per scoprire il motivo, è necessario consultare i registri sul lato server, che dovrebbero mostrare il motivo della disconnessione. Dovresti essere quasi sempre in grado di trovare i log in / var / log / messages

Potrei immaginare che, poiché la connessione è caduta subito dopo che il client ha inviato il numero di versione, il server in qualche modo considera il client incompatibile.


3

Ho avuto lo stesso problema ma si è scoperto che la causa era diversa: stavo usando una porta sbagliata.

Nelle versioni più recenti sshdell'errore fornito è Connection refusedo Bad port.

Nelle versioni precedenti l'errore indicato è ssh_exchange_identification: read: Connection reset by peer

Quindi, quando si ottiene tale errore, verificare se la porta è corretta.


1

So che questa domanda è vecchia, ma volevo condividere alcuni risultati che ho avuto. Controlla se /var/empty/sshdsul server ha la proprietà e le autorizzazioni appropriate.

Avevamo uno script chef che è stato modificato per aggiornare alcune autorizzazioni della directory, ma inavvertitamente abbiamo aggiornato la directory sotto la destinazione prevista, cambiando la proprietà di / var in un utente / gruppo dell'applicazione e cambiando le autorizzazioni in 775.


1

Poiché non è stato menzionato esplicitamente in una risposta, un altro modo in cui questo errore può apparire è se un firewall basato sulla rete tra te e il server ha deciso di bloccare la connessione. Il firewall avrebbe potuto decidere che c'erano "troppe" connessioni dall'IP del sistema OS X e ha iniziato a bloccarlo. Non c'erano ancora "troppe" connessioni dall'altro sistema, e quindi era permesso.

L'ultimo messaggio che hai ricevuto dal server è quello che si verifica prima ancora di iniziare qualsiasi tentativo di autenticazione, il che esclude una grande classe di possibilità che circondano il tuo account, chiave o password.

Esempi di tali politiche di forza bruta da un campionamento casuale di venditori sono:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.