Com depurar connexions SSH

How Debug Ssh Connections



Aquest tutorial repassarà alguns mètodes i tècniques ràpides que podeu utilitzar per diagnosticar diverses connexions SSH, inclòs quan no us podeu connectar a SSH, errors d'autenticació, etc.

NOTA: Abans de començar, assegureu-vos que el dispositiu al qual voleu connectar-vos estigui en línia i que l’error no sigui el resultat que el dispositiu no estigui disponible.







Problema 1: el servei SSH no s'executa

Una causa habitual d’errors de connexió SSH és que el servei no s’executa a l’amfitrió remot. Això pot ser a causa del tancament accidental del servei o del fet que el servei no s'iniciï després d'un reinici del sistema.



Per comprovar si el servei SSH s'està executant, utilitzeu el gestor del sistema mitjançant l'ordre:



suosystemctl status sshd

L'ordre anterior hauria d'informar si el servei s'està executant o no, tal com es mostra a les captures de pantalla següents.







Solució

Per resoldre problemes SSH causats pel fet que el servei no s'executa, utilitzeu el sistema per iniciar el servei. Si el servei respon amb errors, comproveu els registres i solucioneu els problemes informats al registre.

Utilitzeu l'ordre següent per comprovar els registres de serveis.

adherència 'sshd' /on/registre/auth.log

Utilitzeu l'ordre següent per iniciar o aturar el servei SSH mitjançant systemd.

suosystemctl arrenca sshd

Problema 2: SSH al port no estàndard

El segon problema comú a l’hora de depurar connexions SSH és l’ús d’un port no estàndard. Si SSH s'executa en un altre port que no sigui el port predeterminat 22, no us connectareu a l'amfitrió remot tret que especifiqueu explícitament el port on s'executa SSH.

Per veure el port on s’executa SSH, utilitzeu una eina com ara netstat de la manera següent:

[centenars@centos8 ~]$suo netstat -ptln | adherència ssh
tcp0 00.0.0.0:560.0.0.0:*ESCOLTA1131/sshd
tcp60 0:::56:::*ESCOLTA1131/sshd

La sortida anterior mostra en quin port s’executa el servei SSH. En aquest cas, és el port 56.

Solució

Per resoldre aquest problema, podeu utilitzar la informació de netstat per especificar explícitament el port a l'ordre ssh com:

sshnom d'usuari@ip -p 56

Problema 3: un altre servei que utilitza el mateix port

Una altra causa dels errors de connexió SSH és si un altre servei o procés també utilitza el mateix port que el servei SSH. Per exemple, si SSH s'especifica explícitament per executar-se al port 80 (idea terrible), un servei com Apache pot estar utilitzant el mateix port.

Per veure si un altre procés utilitza el mateix port que SSH, comproveu els registres mitjançant l'ordre:

suojournalctl-tsshd

Aquesta ordre hauria de retornar un error com el que es mostra a continuació, indicant si un altre procés utilitza el port lligat a SSH.

sshd[110.611]: error: Vincula al port80el 0.0.0.0 ha fallat: l'adreça ja estàdinsús

És bo assegurar-se que l'error d'enllaç de port sigui causat per un altre servei, no per mesures de seguretat com SELinux.

Solució

Hi ha diverses maneres d'utilitzar per resoldre aquest problema. Això inclou:

El primer és vincular el servei SSH a un port diferent. Podeu fer-ho editant el fitxer de configuració SSH. Per exemple, canvieu l'entrada del port al port 3009 tal com es mostra a les ordres:

suo nano /etc/ssh/sshd_config
Port3009

Un altre mètode que podeu utilitzar per resoldre aquest problema és aturar el servei mitjançant el port SSH. Per exemple, atureu el servei apache mitjançant el port 80 com:

suosystemctl atura httpd
suosystemctl deshabilita httpd

Problema 4: Tallafoc

Si heu provat tots els mètodes anteriors i encara no teniu connexió SSH, podeu passar a la següent possible causa del problema: restriccions del tallafoc. Segons el mètode del tallafoc que utilitzeu (UFW o Iptables), heu de garantir que el tallafoc permeti connexions SSH.

Solució

Les regles del tallafoc són àmplies i poden variar en funció de la configuració del sistema. Per tant, no puc cobrir tots els aspectes. Tanmateix, el següent és una solució senzilla per garantir que el servei SSH està permès al tallafoc UFW.

suoufw permetre<ssh_port> /tcp

També podeu restablir totes les regles UFW i tornar a començar. Això us permetrà solucionar les connexions del tallafoc des de zero.

suoufw restabliment

Problema 5: inicis de sessió de contrasenya desactivats

De vegades, podeu configurar SSH perquè no accepti els inicis de sessió de contrasenya i només utilitzi autenticació de clau pública. Això pot causar un problema si la clau pública no està disponible al servidor o si falta el parell de claus privades.

Per comprovar si es permeten els inicis de sessió de contrasenya, feu servir la configuració ssh com:

[centenars@centos8]$suo adherènciaAutenticació de contrasenya/etc/ssh/sshd_config
#PasswordAuthentication sí
Autenticació de contrasenya
# Autenticació de contrasenya. Depenent de la configuració de PAM,
# Autenticació PAM i, a continuació, activeu aquesta opció, però configureu PasswordAuthentication

La sortida anterior mostra que es permeten els inicis de sessió amb contrasenya.

Solució

Per resoldre el problema anterior, podeu utilitzar dos mètodes:

En primer lloc, si teniu el valor establert en no, canvieu el valor PasswordAuthentication a yes i reinicieu el servei ssh.

L'altre mètode és crear un parell clau-valor ssh i utilitzar-lo per iniciar la sessió al servidor. Per obtenir informació sobre com crear un parell clau-valor ssh, utilitzeu la següent guia.

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

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

Conclusió

En aquesta guia ràpida, hem analitzat les principals causes dels errors de connexió SSH i com es poden resoldre. Tot i que aquesta guia cobreix problemes habituals, és possible que trobeu errors específics del vostre sistema en funció de la configuració i els permisos.