GNU/Linux >> Tutoriels Linux >  >> Linux

Dépanner SSH

Cet article vous montre comment dépanner Secure Shell (SSH) sur un serveur Linux®.

Différents types d'erreurs

Si vous ne pouvez pas vous connecter en SSH à un serveur, vous devez faire attention aux erreurs (ou à leur absence) que vous recevez. La liste suivante décrit quelques erreurs possibles.

Accès refusé ou Authentification refusée

Ce type d'erreur se produit chaque fois que vous vous connectez via SSH avec des informations d'identification incorrectes. Si vous obtenez cette erreur, vous pouvez vérifier ce qui suit :

  • Assurez-vous d'avoir correctement saisi le nom d'utilisateur et le mot de passe.
  • Si vous utilisez une paire de clés SSH, assurez-vous que la clé privée est installée sur votre ordinateur local.

Port 22 :Connexion refusée

Cette erreur se produit pour les raisons suivantes :

  • SSH n'est pas installé ou en cours d'exécution.
  • SSH écoute sur un autre port.
  • Les règles de pare-feu n'autorisent pas SSH.

Erreur réseau :la connexion a expiré

Cette erreur se produit souvent en raison de problèmes de connectivité réseau sur le serveur ou sur votre ordinateur local. Chaque fois que vous recevez ces erreurs, assurez-vous que votre ordinateur local est connecté à Internet. S'il est connecté, vérifiez également la connexion au serveur pour vous assurer que le serveur est en cours d'exécution.

Vérifier de l'extérieur

Voici quelques méthodes courantes pour dépanner SSH depuis l'extérieur de votre serveur :

nmap

nmap est un outil d'exploration de réseau et un scanner de sécurité ou de port. Vous pouvez utiliser cet outil pour vérifier si le port pour SSH est ouvert sur le serveur. L'exemple suivant fournit la commande et sa sortie :

$ nmap <ip-address-of-host>

Starting Nmap 6.40 ( https://nmap.org ) at 2020-03-21 23:44 UTC
Nmap scan report for <ip-address-of-host>
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.35 seconds

ssh -vvv

Utiliser ssh avec le -vvv flags produit une sortie détaillée lorsque vous vous connectez en SSH au serveur. Cette commande peut fournir des informations utiles pour dépanner exactement où le problème pourrait être.

Vérifier de l'intérieur

Si vous rencontrez des problèmes avec SSH, vous pouvez vous connecter en utilisant la console d'urgence pour dépanner le serveur afin de vérifier les conditions suivantes :

Processus SSH

Tout d'abord, assurez-vous que le processus SSH est en cours d'exécution en exécutant la commande suivante :

  • Pour Ubuntu® 16.04+, Debian® 8+ et Centos® 7+ :systemctl status sshd
  • Pour Centos 6 :service sshd status

Si vous ne voyez pas le service en cours d'exécution, vous pouvez démarrer le processus en utilisant la commande suivante :

  • Pour Ubuntu 16.04+, Debian 8+ et Centos 7+ :systemctl start sshd
  • Pour Centos 6 :service sshd start

netstat

Le netstat La commande vous montre les connexions actuelles sur le serveur. Cette commande est un bon moyen de vérifier et de voir sur quel port SSH s'exécute. Lorsque vous exécutez netstat , utilisez les drapeaux -plnt pour obtenir la sortie suivante :

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::22                   :::*                    LISTEN      13631/sshd             

Fichier de configuration SSH

Le fichier de configuration SSH, /etc/ssh/sshd_config , définit la configuration SSH. Il existe de nombreuses options dans le fichier de configuration, mais en voici quelques-unes :

Port 22            <---- The port ssh runs on
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

~
~
~

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes  <---- Allows or block users logging in as root
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes  <---- Will state whether or not a user needs an ssh key to log in

Alternativement, vous pouvez utiliser le grep commande pour rechercher ces lignes spécifiques. Lorsque vous utilisez le grep commande, vous devez être précis lorsque vous recherchez une phrase spécifique. Faites attention à la ponctuation, aux majuscules et à l'orthographe.

$ sudo grep Port /etc/ssh/sshd_config
#   Port 22

Le pare-feu

Si vous disposez d'une connectivité réseau, que toutes les configurations sont correctes et que vous ne parvenez toujours pas à vous connecter via SSH, vous pouvez consulter vos règles de pare-feu sur le serveur. Sur les serveurs Linux, iptables a ces règles. Pour répertorier les règles de pare-feu dans iptables , lancez la commande iptables -L . Pour en savoir plus sur iptables , lisez Introduction à iptables.

fail2ban

fail2ban est une application qui bloque une adresse IP après un certain nombre de tentatives de connexion infructueuses. Pour vérifier les jails, vous pouvez lancer la commande fail2ban-client status . Cette commande vous montre toutes les jails configurées sur le serveur et les adresses IP qui se trouvent dans ces jails.

Les fichiers journaux

Lorsque tout le reste échoue, accédez aux fichiers journaux. Ces fichiers fournissent des informations indiquant si vous atteignez ou non le serveur, si vous utilisez un mot de passe non valide, etc. Les fichiers journaux que vous devez consulter incluent les fichiers suivants :

  • Ubuntu ou Debian :/var/log/auth.log
  • CentOS ou RHEL® :/var/log/secure

Lors de la recherche dans ces fichiers journaux, vous pouvez utiliser le less commande pour analyser l'ensemble du fichier et rechercher une heure ou une chaîne spécifique. Si vous vous êtes connecté au serveur depuis la console, vous pouvez utiliser tail -f sur les journaux pendant que vous essayez de vous connecter en SSH au serveur. Ensuite, vous pouvez regarder la mise à jour des fichiers journaux en temps réel.


Linux
  1. Comment SSH sur Linux à partir d'Android

  2. Ssh - Déplacer une application en cours d'exécution vers un autre serveur X ? ?

  3. Ssh, Sudo, puis télécharger ?

  4. Résoudre les problèmes d'accès à distance à SQL Server

  5. Pourquoi ma connexion SSH est-elle lente ?

Comment utiliser SSH pour se connecter à un serveur distant

Tunnellisation et proxy SSH

Serveur SSH

Comment ajouter une clé publique SSH au serveur

12 choses à faire après l'installation d'un serveur Linux

Comment SSH au serveur via Linux