Come eseguire il debug delle connessioni SSH

How Debug Ssh Connections



Questo tutorial esaminerà alcuni metodi e tecniche rapidi che è possibile utilizzare per diagnosticare varie connessioni SSH, incluso quando non è possibile connettersi a SSH, errori di autenticazione e simili.

NOTA: Prima di iniziare, assicurati che il dispositivo a cui desideri connetterti sia online e che l'errore non sia dovuto alla mancata disponibilità del dispositivo.







Problema 1: servizio SSH non in esecuzione

Una causa comune degli errori di connessione SSH è il servizio non in esecuzione sull'host remoto. Ciò può essere dovuto all'arresto accidentale del servizio o al mancato avvio del servizio dopo il riavvio del sistema.



Per verificare se il servizio SSH è in esecuzione, utilizzare il gestore di sistema utilizzando il comando:



sudostato systemctl sshd

Il comando precedente dovrebbe segnalare se il servizio è in esecuzione o meno, come mostrato negli screenshot seguenti.







Soluzione

Per risolvere i problemi SSH causati dal servizio non in esecuzione, utilizzare il sistema per avviare il servizio. Se il servizio risponde con errori, controlla i log e correggi i problemi riportati nel log.

Utilizzare il comando seguente per controllare i registri del servizio.

presa 'sshd' /dove/tronco d'albero/auth.log

Utilizzare il comando seguente per avviare o arrestare il servizio SSH utilizzando systemd.

sudosystemctl avvia sshd

Problema 2: SSH su porta non standard

Il secondo problema comune durante il debug delle connessioni SSH è l'uso di una porta non standard. Se SSH è in esecuzione su un'altra porta diversa dalla porta predefinita 22, non ti connetterai all'host remoto a meno che non specifichi esplicitamente la porta su cui è in esecuzione SSH.

Per visualizzare la porta su cui è in esecuzione SSH, utilizzare uno strumento come netstat come di seguito:

[centinaia@centos8 ~]$sudo netstat -ptln | presa ssh
tcp0 00.0.0.0:560.0.0.0:*ASCOLTARE1131/sshd
tcp60 0:::56:::*ASCOLTARE1131/sshd

L'output sopra mostra su quale porta è in esecuzione il servizio SSH. In questo caso, è la porta 56.

Soluzione

Per risolvere questo problema, puoi utilizzare le informazioni di netstat per specificare esplicitamente la porta nel tuo comando ssh come:

sshnome utente@ip -P 56

Problema 3: un altro servizio che utilizza la stessa porta

Un'altra causa degli errori di connessione SSH è se un altro servizio o processo utilizza anche la stessa porta del servizio SSH. Ad esempio, se SSH è esplicitamente specificato per l'esecuzione sulla porta 80 (idea terribile), un servizio come Apache potrebbe utilizzare la stessa porta.

Per vedere se un altro processo sta usando la stessa porta di SSH, controlla i log usando il comando:

sudojournalctl-Tsshd

Questo comando dovrebbe restituire un errore come quello mostrato di seguito, che indica se un altro processo utilizza la porta collegata a SSH.

sshd[110611]: errore: associazione alla porta80su 0.0.0.0 fallito: indirizzo giàinutilizzo

È bene assicurarsi che l'errore di associazione della porta sia causato da un altro servizio, non da misure di sicurezza come SELinux.

Soluzione

Esistono vari modi per risolvere questo problema. Questi includono:

Il primo è associare il servizio SSH a una porta diversa. Puoi farlo modificando il file di configurazione SSH. Ad esempio, cambia la voce Porta nella porta 3009 come mostrato nei comandi:

sudo nano /eccetera/ssh/sshd_config
Porta3009

Un altro metodo che puoi utilizzare per risolvere questo problema è interrompere il servizio utilizzando la porta SSH. Ad esempio, interrompere il servizio Apache utilizzando la porta 80 come:

sudosystemctl stop httpd
sudosystemctl disabilita httpd

Problema 4: firewall

Se hai provato tutti i metodi sopra e ancora nessuna connessione SSH, puoi passare alla prossima possibile causa del problema: Restrizioni del firewall. A seconda del metodo firewall che stai utilizzando (UFW o Iptables), devi assicurarti che il firewall consenta le connessioni SSH.

Soluzione

Le regole del firewall sono ampie e possono variare a seconda della configurazione del sistema. Quindi, non posso coprire ogni aspetto. Tuttavia, la seguente è una soluzione semplice per garantire che il servizio SSH sia consentito su UFW Firewall.

sudoufw consentire<ssh_port> /tcp

Puoi anche ripristinare tutte le regole UFW e ricominciare da capo. Ciò ti consentirà di risolvere da zero le connessioni del firewall.

sudoufw reset

Problema 5: accessi con password disabilitati

A volte puoi configurare SSH in modo che non accetti accessi con password e utilizzi solo l'autenticazione a chiave pubblica. Ciò può causare un problema se la chiave pubblica non è disponibile sul server o se manca la coppia di chiavi private.

Per verificare se gli accessi con password sono consentiti, cat la configurazione di ssh come:

[centinaia@centos8]$sudo presaAutenticazione password/eccetera/ssh/sshd_config
#PasswordAuthentication sì
Autenticazione password
# Autenticazione password. A seconda della configurazione PAM,
# Autenticazione PAM, quindi abilitala ma imposta PasswordAuthentication

L'output sopra mostra che gli accessi con password sono consentiti.

Soluzione

Per risolvere il problema di cui sopra, puoi utilizzare due metodi:

Innanzitutto, se il valore è impostato su no, modificare il valore PasswordAuthentication su yes e riavviare il servizio ssh.

L'altro metodo consiste nel creare una coppia chiave-valore ssh e utilizzarla per accedere al server. Per sapere come creare una coppia chiave-valore ssh, utilizza la seguente guida.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Conclusione

In questa guida rapida, abbiamo discusso delle principali cause degli errori di connessione SSH e di come risolverli. Sebbene questa guida copra problemi comuni, potresti trovare errori specifici del tuo sistema in base alla configurazione e alle autorizzazioni.