NOTA: Prima di iniziare, assicurarsi che il dispositivo a cui si desidera connetterti sia online e l'errore non è il risultato che il dispositivo non sia disponibile.
Numero 1: servizio SSH non in esecuzione
Una causa comune di errori di connessione SSH è il servizio non in esecuzione sull'host remoto. Ciò può essere dovuto all'arresto del servizio accidentale o al servizio non avviato dopo un riavvio del sistema.
Per verificare se il servizio SSH è in esecuzione, utilizzare System Manager utilizzando il comando:
sudo systemctl status sshd
Il comando sopra deve 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, controllare i registri e correggere i problemi riportati nel registro.
Utilizzare il comando seguente per controllare i registri del servizio.
grep 'sshd'/var/log/auth.tronco d'albero
Utilizzare il comando seguente per avviare o arrestare il servizio SSH utilizzando SystemD.
sudo systemctl avvia sshd
Numero 2: SSH sulla porta non standard
Il secondo problema comune durante il debug di connessioni SSH è l'uso di una porta non standard. Se SSH è in esecuzione su un'altra porta diversa dalla porta predefinita 22, non si connetterà all'host remoto a meno che non si 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:
[Centos@Centos8 ~] $ sudo netstat -ptln | grep ssh
TCP 0 0 0.0.0.0:56 0.0.0.0:* Ascolta 1131/SSHD
TCP6 0 0 ::: 56 :::* Ascolta 1131/SSHD
L'output sopra mostra quale porta il servizio SSH è in esecuzione. In questo caso, è la porta 56.
Soluzione
Per risolvere questo problema, è possibile utilizzare le informazioni da NetStat per specificare esplicitamente la porta nel comando SSH come:
username ssh@ip -p 56
Numero 3: un altro servizio che utilizza la stessa porta
Un'altra causa di 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 essere eseguito sulla porta 80 (Idea Terribile), un servizio come Apache potrebbe utilizzare la stessa porta.
Per visualizzare se un altro processo utilizza la stessa porta di SSH, controllare i registri utilizzando il comando:
sudo journalctl -t sshd
Questo comando dovrebbe restituire un errore come quello mostrato di seguito, indicando se un altro processo utilizza la porta SSH.
SSHD [110611]: Errore: Bind to Port 80 su 0.0.0.0 non riuscito: indirizzo già in uso
È bene assicurarsi che l'errore di legame della porta sia causato da un altro servizio, non misure di sicurezza come Selinux.
Soluzione
Esistono vari modi in cui puoi usare per risolvere questo problema. Questi includono:
Il primo è vincolare il servizio SSH a una porta diversa. Puoi farlo modificando il file di configurazione ssh. Ad esempio, modificare la voce della porta nella porta 3009 come mostrato nei comandi:
sudo nano/etc/ssh/sshd_config
Porta 3009
Un altro metodo che puoi utilizzare per risolvere questo problema è arrestare il servizio utilizzando la porta SSH. Ad esempio, interrompere il servizio Apache utilizzando la porta 80 come:
sudo systemctl stop httpd
sudo systemctl disabilita httpd
Numero 4: firewall
Se hai provato tutti i metodi di cui sopra e ancora nessuna connessione SSH, puoi passare alla prossima causa possibile del problema: Restrizioni del firewall. A seconda del metodo del firewall che stai utilizzando (UFW o iptables), è necessario assicurarsi che il firewall consenta 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, quanto segue è una soluzione semplice per garantire che il servizio SSH sia consentito su UFW Firewall.
sudo ufw consenti/TCP
Puoi anche ripristinare tutte le regole UFW e ricominciare. Ciò ti permetterà di risolvere i problemi di firewall da zero.
SUDO UFW RESET
Numero 5: accessi per la password disabilitata
A volte è possibile configurare SSH per non accettare l'accesso della password e utilizzare solo l'autenticazione del tasto pubblico. Ciò può causare un problema se la chiave pubblica non è disponibile sul server o manca la coppia di tasti privati.
Per verificare se sono consentiti l'accesso della password, Cat la configurazione SSH come:
[Centos@Centos8] $ sudo grep passwordauthentication/etc/ssh/sshd_config
#PasswordAuthentication Sì
Passwordautenticazione Sì
# Passwordautenticazione. A seconda della configurazione PAM,
# Autenticazione PAM, quindi abilita questo ma impostare la password -utentica
L'output sopra mostra che sono consentiti gli accessi della password.
Soluzione
Per risolvere il problema di cui sopra, è possibile utilizzare due metodi:
Innanzitutto, se hai il valore impostato su no, modificare il valore di passwordautenticazione in SÌ e riavviare il servizio SSH.
L'altro metodo è creare una coppia di valore chiave SSH e utilizzarla per accedere al server. Per imparare a creare una coppia di valore chiave SSH, utilizzare la seguente guida.
https: // linuxhint.com/find-ssh-pubblic-key/
https: // linuxhint.com/ussh-ssh-copy-id-comand/
Conclusione
In questa rapida guida, abbiamo discusso delle principali cause degli errori di connessione SSH e di come risolverli. Sebbene questa guida copra problemi comuni, è possibile trovare errori specifici per il sistema in base alla configurazione e alle autorizzazioni.