Comment vérifier si un serveur SSH est en cours d'exécution sur Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si un serveur SSH est en cours d'exécution sur un système Linux. Vous utiliserez la commande systemctl status ssh pour vérifier l'état d'exécution du service, la commande ss -tuln pour vérifier si le port SSH est ouvert et en écoute, et la commande cat /etc/ssh/sshd_config pour inspecter le fichier de configuration du serveur SSH. Ces étapes sont fondamentales pour la résolution de problèmes et la vérification de la fonctionnalité du serveur SSH.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") subgraph Lab Skills linux/cat -.-> lab-558785{{"Comment vérifier si un serveur SSH est en cours d'exécution sur Linux"}} linux/service -.-> lab-558785{{"Comment vérifier si un serveur SSH est en cours d'exécution sur Linux"}} linux/netstat -.-> lab-558785{{"Comment vérifier si un serveur SSH est en cours d'exécution sur Linux"}} end

Vérifier le service SSH avec systemctl status ssh

Dans cette étape, vous apprendrez à vérifier l'état du service SSH sur votre système Linux. SSH (Secure Shell) est un protocole utilisé pour se connecter en toute sécurité à un ordinateur distant. C'est un outil fondamental pour l'administration système et le développement.

Dans Linux, les services tels que SSH sont souvent gérés par systemd, un gestionnaire de systèmes et de services. La commande systemctl est utilisée pour interagir avec systemd.

Pour vérifier l'état du service SSH, vous utiliserez la commande systemctl status suivie du nom du service, qui est ssh.

Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous pouvez trouver l'icône Xfce Terminal sur le côté gauche de votre bureau.

Tapez la commande suivante dans le terminal et appuyez sur Entrée :

systemctl status ssh

Vous verrez une sortie similaire à celle-ci :

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: 1 (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Décortiquons les parties importantes de la sortie :

  • ● ssh.service : C'est le nom du service.
  • Loaded: loaded (...) : Indique que le fichier de configuration du service a été chargé par systemd.
  • Active: active (running) : C'est la partie la plus importante. Elle vous indique que le service SSH est actuellement en cours d'exécution. S'il était arrêté, cela afficherait quelque chose comme inactive (dead).
  • since ... : Montre quand le service a démarré.
  • Main PID: ... (sshd) : L'identifiant de processus (Process ID) du processus principal du démon SSH (sshd).

Cette commande est essentielle pour résoudre les problèmes de connectivité réseau ou pour vérifier qu'un service fonctionne comme prévu.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le port SSH avec ss -tuln

Dans cette étape, vous apprendrez à vérifier quels ports réseau sont ouverts et en écoute sur votre système. Cela est crucial pour comprendre comment des services tels que SSH sont accessibles.

La commande ss est un utilitaire pour examiner les sockets. Les sockets sont des points terminaux pour envoyer et recevoir des données sur un réseau. Nous utiliserons ss avec plusieurs options pour filtrer la sortie :

  • -t : Afficher les sockets TCP. SSH utilise le protocole TCP.
  • -u : Afficher les sockets UDP.
  • -l : Afficher les sockets en écoute. Ce sont des sockets qui attendent des connexions entrantes.
  • -n : Ne pas résoudre les noms de services. Cela affiche les numéros de port au lieu de noms comme ssh ou http.

Combinez ces options pour voir tous les ports TCP et UDP en écoute avec leurs valeurs numériques.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ss -tuln

Vous verrez une sortie listant différents ports en écoute. Recherchez la ligne liée à SSH, qui écoute généralement sur le port 22. La sortie pourrait ressembler à ceci (l'ordre exact et les autres ports peuvent varier) :

Netid  State   Recv-Q  Send-Q   Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128            0.0.0.0:22          0.0.0.0:*
tcp    LISTEN  0       128               [::]:22             [::]:*
udp    UNCONN  0       0              127.0.0.53%lo:53          0.0.0.0:*
udp    UNCONN  0       0                    0.0.0.0:68          0.0.0.0:*

Dans cette sortie :

  • Netid : Le protocole réseau (tcp ou udp).
  • State : L'état du socket (LISTEN signifie qu'il attend des connexions).
  • Local Address:Port : L'adresse IP locale et le numéro de port sur lequel le service écoute. 0.0.0.0 signifie qu'il écoute sur toutes les adresses IPv4 disponibles, et [::] signifie qu'il écoute sur toutes les adresses IPv6 disponibles.
  • Peer Address:Port : L'adresse et le port de la connexion distante (pour les sockets en écoute, cela est *).

Vous devriez voir des lignes indiquant que le port TCP 22 est en état LISTEN. Cela confirme que le service SSH est en cours d'exécution et prêt à accepter des connexions sur le port SSH standard.

Comprendre comment vérifier les ports ouverts est une compétence fondamentale pour la résolution de problèmes réseau et la sécurité.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter la configuration SSH avec cat /etc/ssh/sshd_config

Dans cette étape finale, vous allez examiner le fichier de configuration principal du serveur SSH. Ce fichier contient les paramètres qui contrôlent le comportement du service SSH, comme le port sur lequel il écoute, les utilisateurs autorisés à se connecter et les options de sécurité.

Le fichier de configuration du démon SSH (sshd) est généralement situé à /etc/ssh/sshd_config. Le répertoire /etc est l'endroit où sont stockés les fichiers de configuration système.

Pour afficher le contenu de ce fichier, vous pouvez utiliser la commande cat. cat est une commande simple qui lit les fichiers séquentiellement et les affiche sur la sortie standard (votre terminal).

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /etc/ssh/sshd_config

Vous verrez tout le contenu du fichier sshd_config affiché dans votre terminal. La sortie contiendra de nombreuses lignes, certaines commençant par # (ce sont des commentaires ignorés par le système) et d'autres définissant des options de configuration.

Recherchez les lignes qui ne sont pas commentées (ne commençant pas par #). Certaines directives importantes que vous pourriez voir incluent :

  • Port 22 : Cela spécifie le port sur lequel le serveur SSH écoute. Par défaut, il s'agit du port 22.
  • ListenAddress 0.0.0.0 : Spécifie l'adresse IPv4 sur laquelle le serveur écoute.
  • ListenAddress :: : Spécifie l'adresse IPv6 sur laquelle le serveur écoute.
  • PermitRootLogin prohibit-password : Contrôle si l'utilisateur root peut se connecter directement via SSH.
  • PasswordAuthentication yes : Contrôle si l'authentification par mot de passe est autorisée.
## This is the sshd server system configuration file.
## See sshd_config(5) for more information.

## The systemd service file for sshd uses EnvironmentFile to load
## the SSHD_CONFIG environment variable, setting this to /etc/ssh/sshd_config.
## ...

Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

## Ciphers and keying
#...

## Authentication:
LoginGraceTime 2m
PermitRootLogin prohibit-password
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

## Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2

#IgnoreRhosts yes
#RhostsRSAAuthentication no
#HostbasedAuthentication no
#...

PasswordAuthentication yes
#PermitEmptyPasswords no

ChallengeResponseAuthentication no

#...

Lire des fichiers de configuration comme celui-ci est une compétence clé pour comprendre et gérer les services Linux. Bien que vous ne modifiiez pas le fichier dans ce laboratoire, savoir où il se trouve et comment afficher son contenu est très utile.

Vous avez maintenant vérifié avec succès l'état du service SSH, vérifié le port sur lequel il écoute et inspecté son fichier de configuration. Vous avez acquis une expérience précieuse avec les commandes Linux fondamentales pour la gestion des services et l'inspection réseau.

Cliquez sur Continuer pour terminer le laboratoire et voir votre progression !

Résumé

Dans ce laboratoire, vous avez appris à vérifier si un serveur SSH est en cours d'exécution sur un système Linux. Vous avez utilisé la commande systemctl status ssh pour vérifier l'état actif du service et comprendre des détails clés tels que son statut chargé, son état actif et son identifiant de processus. Cette commande est cruciale pour confirmer que le service SSH est opérationnel.

Vous avez également appris à vérifier le port SSH en utilisant la commande ss -tuln et à inspecter le fichier de configuration SSH situé à /etc/ssh/sshd_config en utilisant la commande cat. Ces étapes fournissent un aperçu plus approfondi de la configuration réseau et des paramètres du serveur SSH.