Comment déboguer les connexions SSH

Comment déboguer les connexions SSH
Ce tutoriel passera en revue quelques méthodes et techniques rapides que vous pouvez utiliser pour diagnostiquer diverses connexions SSH, y compris lorsque vous ne pouvez pas vous connecter au SSH, les erreurs d'authentification, et telles.

NOTE: Avant de commencer, assurez-vous que l'appareil à vous connecter est en ligne et que l'erreur n'est pas le résultat de l'appareil indisponible.

Numéro 1: le service SSH ne fonctionne pas

Une cause courante des erreurs de connexion SSH est le service qui ne fonctionne pas sur l'hôte distant. Cela peut être dû à une fermeture accidentelle ou à un service de service qui ne commence pas après un redémarrage du système.

Pour vérifier si le service SSH est en cours d'exécution, utilisez le gestionnaire système à l'aide de la commande:

Sudo Systemctl Status SSHD

La commande ci-dessus doit signaler si le service est en cours d'exécution ou non, comme indiqué dans les captures d'écran ci-dessous.

Solution

Pour résoudre les problèmes SSH causés par le service non en cours d'exécution, utilisez le système pour démarrer le service. Si le service répond avec des erreurs, vérifiez les journaux et résolvez les problèmes signalés dans le journal.

Utilisez la commande ci-dessous pour vérifier les journaux de service.

grep 'sshd' / var / log / auth.enregistrer

Utilisez la commande ci-dessous pour démarrer ou arrêter le service SSH à l'aide de Systemd.

sudo systemctl start sshd

Numéro 2: SSH sur le port non standard

La deuxième question commune lors du débogage des connexions SSH est l'utilisation d'un port non standard. Si SSH s'exécute sur un autre port autre que le port par défaut 22, vous ne vous connectez pas à l'hôte distant à moins que vous ne spécifiez explicitement le port sur lequel SSH s'exécute.

Pour afficher le port sur lequel SSH est en cours d'exécution, utilisez un outil tel que NetStat comme ci-dessous:

[Centos @ Centos8 ~] $ sudo netstat -ptln | grep ssh
TCP 0 0 0.0.0.0:56 0.0.0.0: * Écoutez 1131 / sshd
TCP6 0 0 ::: 56 ::: * Écoutez 1131 / sshd

La sortie ci-dessus montre sur quel port le service SSH fonctionne. Dans ce cas, c'est le port 56.

Solution

Pour résoudre ce problème, vous pouvez utiliser les informations de Netstat pour spécifier explicitement le port de votre commande ssh comme:

nom d'utilisateur ssh @ ip -p 56

Numéro 3: un autre service utilisant le même port

Une autre cause d'erreurs de connexion SSH est si un autre service ou processus utilise également le même port que le service SSH. Par exemple, si SSH est explicitement spécifié pour s'exécuter sur le port 80 (IDEA TERRIBLE), un service comme Apache peut utiliser le même port.

Pour afficher si un autre processus utilise le même port que SSH, vérifiez les journaux à l'aide de la commande:

sudo journalctl -t sshd

Cette commande doit renvoyer une erreur comme celle illustrée ci-dessous, indiquant si un autre processus utilise le port lié à SSH.

sshd [110611]: erreur: lier au port 80 sur 0.0.0.0 Échec: l'adresse déjà utilisée

Il est bon de s'assurer que l'erreur de liaison au port est causée par un autre service, et non des mesures de sécurité telles que SELINUX.

Solution

Il existe différentes façons d'utiliser pour résoudre ce problème. Ceux-ci inclus:

La première consiste à lier le service SSH à un autre port. Vous pouvez le faire en modifiant le fichier de configuration SSH. Par exemple, modifiez l'entrée du port en port 3009 comme indiqué dans les commandes:

sudo nano / etc / ssh / sshd_config
Port 3009

Une autre méthode que vous pouvez utiliser pour résoudre ce problème consiste à arrêter le service à l'aide du port SSH. Par exemple, arrêtez le service Apache à l'aide du port 80 comme:

sudo systemctl stop httpd
Sudo Systemctl Disable Httpd

Numéro 4: pare-feu

Si vous avez essayé toutes les méthodes ci-dessus et toujours pas de connexion SSH, vous pouvez passer à la cause suivante du problème: restrictions de pare-feu. Selon la méthode du pare-feu que vous utilisez (UFW ou iptables), vous devez vous assurer que le pare-feu autorise les connexions SSH.

Solution

Les règles du pare-feu sont larges et peuvent varier en fonction de la configuration du système. Ainsi, je ne peux pas couvrir tous les aspects. Cependant, ce qui suit est une solution simple pour s'assurer que le service SSH est autorisé sur le pare-feu UFW.

sudo ufw autoriser / TCP

Vous pouvez également réinitialiser toutes les règles de l'UFW et recommencer. Qui vous permettra de dépanner les connexions du pare-feu à partir de zéro.

sudo ufw réinitialisation

Numéro 5: Connects de mot de passe désactivé

Parfois, vous pouvez configurer SSH pour ne pas accepter les connexions de mot de passe et utiliser uniquement l'authentification de la clé publique. Qui peut entraîner un problème si la clé publique n'est pas disponible sur le serveur ou manquer votre paire de clés privées.

Pour vérifier si les connexions de mot de passe sont autorisées, catchez la configuration SSH comme:

[Centos @ CentOS8] $ sudo grep PasswordAuthentication / etc / ssh / sshd_config
#PasswordAuthentication Oui
PasswordAuthentication Oui
# PasswordAuthentication. Selon votre configuration PAM,
# Authentification PAM, puis activez-le mais définissez le mot de passe-authentification

La sortie ci-dessus montre que les connexions de mot de passe sont autorisées.

Solution

Pour résoudre le problème ci-dessus, vous pouvez utiliser deux méthodes:

Tout d'abord, si vous avez la valeur définie sur NON, modifiez la valeur de PasswordAuthentication pour oui et redémarrez le service SSH.

L'autre méthode consiste à créer une paire de valeurs clés SSH et à l'utiliser pour se connecter au serveur. Pour apprendre à créer une paire de valeurs clés SSH, utilisez le guide suivant.

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

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

Conclusion

Dans ce guide rapide, nous avons discuté des principales causes d'erreurs de connexion SSH et comment vous pouvez les résoudre. Bien que ce guide couvre les problèmes communs, vous pouvez trouver des erreurs spécifiques à votre système en fonction de la configuration et des autorisations.