GNU/Linux >> Linux Esercitazione >  >> Linux

ssh_exchange_identification:connessione chiusa dall'host remoto (non utilizza hosts.deny)

Originariamente pubblicato su Ask Ubuntu

Se hai escluso eventuali fattori "esterni", la seguente serie di passaggi di solito aiuta a restringere il campo. Quindi, anche se questo non risponde direttamente alla tua domanda, può aiutarti a rintracciare la causa dell'errore.

Risoluzione dei problemi sshd

Quello che trovo generalmente molto utile in questi casi è iniziare sshd senza lasciarlo demonizzare. Il problema nel mio caso era che né syslogauth.log ha mostrato qualcosa di significativo.

Quando l'ho avviato dal terminale ho ottenuto:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

Molto meglio! Questo messaggio di errore mi ha permesso di vedere cosa c'è che non va e risolverlo. Nessuno dei file di registro conteneva questo output.

NB: almeno su Ubuntu il $(which sshd) è il metodo migliore per soddisfare sshd requisito di un percorso assoluto. Altrimenti otterrai il seguente errore:sshd re-exec requires execution with an absolute path . Il -p 10222 rende sshd ascolta su quella porta alternativa, sovrascrivendo il file di configurazione - questo in modo che non sia in conflitto con sshd potenzialmente in esecuzione istanze. Assicurati di scegliere una porta libera qui.

Infine:connettiti alla porta alternativa (ssh -p 10222 [email protected] ).

Questo metodo mi ha aiutato molte volte a trovare problemi, siano essi problemi di autenticazione o di altro tipo. Per ottenere un output davvero dettagliato in stdout , usa $(which sshd) -Ddddp 10222 (notare il dd aggiunto aumentare la verbosità). Per una maggiore bontà del debug controlla man sshd .

Il vantaggio principale di questo metodo è che ti permette di controllare il sshd configurazione senza dover riavviare il sshd sulla porta predefinita. Normalmente questo non dovrebbe interferire con le connessioni SSH esistenti, ma l'ho visto. Quindi questo consente di convalidare il file di configurazione prima - potenzialmente - di interrompere l'accesso a un server remoto (ad esempio l'ho per alcuni VPS e anche per server fisici dove devo pagare un extra per ottenere l'accesso fuori banda alla macchina).


Puoi anche avere un host la cui memoria è così frammentata da non poter allocare una pagina in una memoria contigua per eseguire il fork del processo per ospitare una sessione SSH.

In tal caso, puoi ottenere uno dei messaggi:

ssh_exchange_identification: read: Connection reset by peer

oppure:

Connection closed by aaa.bbb.ccc.ddd

a seconda di quanto lontano arriva l'host prima che esca.

Se la frammentazione della memoria è la causa apparente, la soluzione è accedere al server tramite altri mezzi e riavviare alcuni dei servizi pertinenti. Ho scoperto che Apache e MySQL sono i colpevoli delle VM poiché le VM non hanno una partizione di swap. In caso contrario, riavvia l'host.


Per ogni evenienza, perché è successo a me. Assicurati di avere sshd in esecuzione nell'host!

È uno stupido fallimento, ma potrebbe essere davvero un tuo problema.


Linux
  1. La connessione tramite SSH a un host non in DNS/host si blocca per un po' di tempo all'inizio della connessione

  2. Come connettere l'host remoto usando il comando ssh

  3. Array in Bash non trovato

  4. Kafka - Impossibile inviare un messaggio a un server remoto utilizzando Java

  5. Rimuovi i file dall'host remoto utilizzando SSH

Come risolvere ssh_exchange_identification:leggi:Connessione ripristinata da errore peer

Come gestire l'host Windows remoto utilizzando Ansible

Nessuna connessione Internet su Virtualbox (Windows 7 come ospite, Ubuntu 13.04 come host)?

Gestione di host dedicati

Come eseguire il backup dell'host Linux remoto utilizzando l'utilità rsnapshot rsync

Utilità della riga di comando di Linux per risolvere i nomi host utilizzando prima /etc/hosts