Secure Shell
Debug dei problemi ssh
Ricerca…
La chiave privata non è accettata (debug di client OpenSSH)
Per impostazione predefinita, la maggior parte delle informazioni è nascosta all'utente. Puoi utilizzare gli switch -v per ottenere un log dettagliato del tentativo di connessione, che di solito identifica il problema mostrando perché il comportamento è diverso da quello che ti aspetti.
Supponiamo che tu ti stia connettendo al server example.com usando ssh (o un altro client OpenSSH come sftp o scp ) e la tua chiave privata non è accettata dal server e il server chiede la password (o rifiuta la connessione):
$ ssh example.com
[email protected]'s password:
Prova ad eseguire ssh con -vvv switch -vvv , che scriveranno tutti i messaggi di debug. Ci saranno molte informazioni, ma dopo un po 'di tempo è abbastanza facile capire che:
$ ssh -vvv example.com
Il problema più comune è che la chiave non si trova nella posizione prevista. Puoi aspettarti che compaiano linee simili, lamentandoti dei file mancanti. Controllare che il tuo file sia stato veramente letto è un buon inizio:
debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1
Possiamo continuare con la parte di autenticazione. La chiave potrebbe essere offerta, ma rifiutata dal server, a causa di problemi con la configurazione del server. Il log potrebbe apparire in qualche modo come questo:
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
L'IDENTIFICAZIONE HOST REMOTA È CAMBIATA!
L'errore comune che usa ssh è vedere l'errore
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/username/.ssh/known_hosts:12
RSA host key for *IP address* has changed and you have requested strict checking.
Host key verification failed.
Ciò significa che sei già stato collegato allo stesso server ed è stato identificato utilizzando diverse chiavi host. Se si è certi di aver modificato le chiavi del server, reinstallato il server o l'amministratore del server ha annunciato alcune modifiche, di solito è ok rimuovere la vecchia chiave e lasciare che ssh memorizzi la nuova.
La vecchia chiave può essere rimossa in modo trasparente usando ssh-keygen :
ssh-keygen -R *IP address*
E la prossima connessione dovrebbe chiederti di verificare la nuova impronta digitale:
ssh192.168.0.128
The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established.
ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Are you sure you want to continue connecting (yes/no)?
Se non sei a conoscenza di quanto sopra, la cosa migliore è contattare l'amministratore del tuo server per assicurarti che tutto sia a posto. In caso contrario, il potenziale aggressore sarebbe in grado di ottenere sia le informazioni di autenticazione che tutti i dati trasferiti!
Connessione rifiutata
Un errore "Connessione rifiutata" si verificherà se il client invia una richiesta di connessione a un host di server remoto e l'host remoto risponde per dire che rifiuta di accettare la richiesta. L'errore "Connessione rifiutata" significa essenzialmente che il computer non accetta connessioni con l'indirizzo IP e la porta richiesti.
"Connessione rifiutata" può essere causata da un firewall che blocca le richieste di connessione. Un firewall che è configurato per bloccare le connessioni a un particolare endpoint può essere impostato per eliminare le richieste di connessione - nel qual caso il client non riceverà mai una risposta e alla fine scaderà. Oppure il firewall può rispondere alle richieste di connessione di connessione con una risposta di rifiuto.
A parte i firewall, nel caso di SSH, la "connessione rifiutata" ha alcune possibili cause:
Potresti usare il numero di porta sbagliato per la connessione. Il numero di porta standard per SSH è 22, ma alcune persone eseguono il servizio ssh su una porta diversa per scoraggiare tentativi di accesso non autorizzati.
Potresti provare a connetterti al computer sbagliato. È possibile che sia stato digitato in modo errato il nome host o l'indirizzo IP. O il computer potrebbe utilizzare un indirizzo assegnato dinamicamente che è cambiato.
Il processo del server ssh potrebbe non essere in esecuzione:
- Potrebbe non essere stato ancora avviato se il sistema è in fase di avvio.
- Potrebbe essere stato disabilitato; ad esempio quando il sistema è in modalità utente singolo.
- Potrebbe essere stato configurato in modo errato, causando il mancato avvio.
- Il computer potrebbe non avere un server SSH configurato. I sistemi MS Windows in genere non includono un server SSH. Su alcuni sistemi Linux, il server SSH potrebbe essere un componente opzionale. OS X include un server SSH, ma è disabilitato per impostazione predefinita.
Il processo del server SSH potrebbe non essere in ascolto per le connessioni sull'interfaccia IP specifica a cui si sta tentando di connettersi. La maggior parte dei computer ha almeno due interfacce IP, un'interfaccia "localhost" e una o più interfacce di rete. Ad ogni interfaccia attiva verrà associato un indirizzo IP. Un server SSH è in genere configurato per accettare connessioni su qualsiasi interfaccia IP. Ma può essere configurato per accettare connessioni solo su particolari interfacce. In tal caso, il computer rifiuterà le connessioni a un indirizzo IP a cui il server SSH non sta ascoltando, anche se la richiesta di connessione ha la porta corretta.
Il server potrebbe avere un backlog di richieste di connessione alla stessa porta. Questo è raro e insolito, ma se l'host riceve richieste di connessione più velocemente di quanto possano essere gestite, l'host alla fine inizierà a rifiutare nuove richieste di connessione.
Da notare che, a parte i firewall, "collegamento rifiutato" significa che si sta comunicando con il computer remoto - non si tratta solo di accettare la tua richiesta di connessione.
Connessione Scaduta
Un errore "Timeout connessione scaduta" si verifica quando il sistema remoto non risponde al tentativo del client di aprire una connessione TCP / IP. Le cause più comuni includono:
- Un firewall sta bloccando il tentativo di connessione sulla porta che stai utilizzando:
- Il firewall potrebbe essere sul lato client, bloccando le connessioni in uscita, sul lato server, bloccando le connessioni in entrata o da qualche altra parte sul percorso.
- Il problema principale potrebbe essere l'utilizzo del numero di porta errato.
- L'host a cui stai tentando di connettersi potrebbe essere offline.
- Alcune parti della rete tra il client e il server potrebbero essere interrotte o interrotte.
- Potrebbe esserci un problema di routing di rete.
La diagnosi della causa principale dei timeout della connessione è difficile.
ssh_exchange_identification: read: Connessione ripristinata dal peer
Questo messaggio di errore può essere prodotto dal client ssh OpenSSH. Significa che la connessione TCP tra il client e il server è stata chiusa anormalmente dal server immediatamente dopo essere stata accettata. I motivi comuni per questo messaggio includono:
- Il processo del server SSH non funziona correttamente, ad esempio si è verificato un arresto anomalo.
- Un firewall, un router o un altro dispositivo di rete tra il client e il server interferisce con la connessione SSH.
Le frasi nel messaggio di errore indicano specificamente cosa è successo:
ssh_exchange_identification: 1. Dopo che un client SSH effettua una connessione a un server SSH, il primo passo per l'avvio del protocollo SSH è che il server invii la versione del software al client. Un errore contenente "ssh_exchange_identification" indica che l'errore si è verificato immediatamente dopo aver effettuato la connessione TCP, mentre il client era in attesa della versione del software dal server.
Connessione ripristinata: un reset della connessione indica che la connessione TCP era "chiusa in modo anomalo". È possibile ottenere questo se il processo del software in possesso di una delle connessioni TCP si blocca. I firewall di rete possono essere configurati per utilizzare le reimpostazioni di connessione come mezzo per bloccare le connessioni TCP.
per peer significa che la connessione TCP è stata chiusa dall'altra estremità della connessione. In questo caso, "l'altra estremità" è il server SSH remoto.
Si noti che questo errore non indica alcun tipo di errore di autenticazione. Il server ha chiuso la connessione TCP immediatamente dopo averlo accettato. Il client e il server non hanno ancora scambiato alcun dato. Il server non ha ancora inviato una chiave host al client e il client non ha ancora provato ad autenticarsi con il server.
ssh_exchange_identification: connessione chiusa dall'host remoto
Questo messaggio di errore può essere prodotto dal client ssh di OpenSSH. Significa che la connessione TCP tra il client e il server è stata chiusa dal server immediatamente dopo essere stata accettata. Questo messaggio indica generalmente che il server SSH è stato configurato per non accettare le connessioni dal client per qualche motivo:
- Il server può essere configurato per rifiutare le connessioni dall'indirizzo IP del client.
- Il server può essere configurato con un limite al numero di connessioni SSH attive.
- Il client potrebbe essere connesso a qualcosa che non è un server SSH.
Le frasi nel messaggio di errore indicano specificamente cosa è successo:
ssh_exchange_identification: 1. Dopo che un client SSH effettua una connessione a un server SSH, il primo passo per l'avvio del protocollo SSH è che il server invii la versione del software al client. Un errore contenente "ssh_exchange_identification" indica che l'errore si è verificato immediatamente dopo aver effettuato la connessione TCP, mentre il client era in attesa della versione del software dal server.
Connessione chiusa: significa che la connessione TCP è stata chiusa in modo normale. Indica che il server SSH ha deliberatamente chiuso la connessione. Questo è in contrasto con "Connessione ripristinata", che potrebbe indicare che il server SSH si è arrestato in modo anomalo o non funzionava correttamente.
tramite host remoto significa che la connessione TCP è stata chiusa dall'altra parte della connessione. In questo caso, "l'altra estremità" è il server SSH remoto.
Si noti che questo errore non indica alcun tipo di errore di autenticazione. Il server ha chiuso la connessione TCP immediatamente dopo averlo accettato. Il client e il server non hanno ancora scambiato alcun dato. Il server non ha ancora inviato una chiave host al client e il client non ha ancora provato ad autenticarsi con il server.