Polarys
Linux CLI : les bases pour le helpdesk/SSH & administration distante

SSH & administration distante

Se connecter en SSH et sécuriser l'accès

Se connecter en SSH et sécuriser l'accès

En PME, vous n'êtes pas forcément physiquement devant chaque serveur. SSH (Secure Shell) vous permet d'administrer un serveur Linux à distance depuis votre poste Windows ou Linux, de manière chiffrée et sécurisée. C'est l'outil n°1 de l'administrateur système.

Qu'est-ce que SSH ?

SSH est un protocole de connexion sécurisée à distance. Contrairement à Telnet (obsolète et non chiffré), SSH chiffre tout le trafic entre votre machine et le serveur. Par défaut sur le port 22.

Depuis Windows, vous pouvez utiliser :

  • Le client SSH intégré à Windows 10/11 (terminal PowerShell ou CMD)
  • PuTTY (outil graphique)
  • Windows Terminal

Connexion de base

# Syntaxe : ssh utilisateur@serveur
ssh alice@192.168.1.10
ssh alice@srv-glpi.entreprise.local
ssh alice@srv-glpi -p 2222   # port non standard

# Première connexion : vérifier l'empreinte du serveur
# The authenticity of host '192.168.1.10' can't be established.
# ED25519 key fingerprint is SHA256:AbCdEf...
# Are you sure you want to continue connecting (yes/no)?

La première connexion affiche l'empreinte du serveur : vérifiez-la avec l'admin du serveur avant de taper "yes". Cette empreinte est ensuite stockée dans ~/.ssh/known_hosts.

Exécuter une commande sans ouvrir de session

# Exécuter une commande distante et récupérer le résultat
ssh alice@srv-glpi "df -h"
ssh alice@srv-glpi "systemctl status apache2"
ssh alice@srv-glpi "tail -50 /var/log/glpi/php-errors.log"

Très utile dans des scripts d'automatisation.

scp : copier des fichiers via SSH

# Copier un fichier local vers le serveur
scp rapport.pdf alice@srv-glpi:/home/alice/

# Copier un fichier du serveur vers local
scp alice@srv-glpi:/etc/glpi/config_db.php /tmp/

# Copier un dossier entier (-r)
scp -r /opt/scripts/ alice@srv-glpi:/opt/scripts/

# Spécifier un port non standard
scp -P 2222 fichier.txt alice@srv-glpi:/tmp/

Le handshake SSH : comment ça marche

sequenceDiagram
  participant C as Client (votre PC)
  participant S as Serveur SSH

  C->>S: Connexion TCP port 22
  S-->>C: Bannière + clé publique du serveur
  C->>C: Vérifie l'empreinte (known_hosts)
  C->>S: Échange de clés (DH) : établit session chiffrée
  Note over C,S: Tout ce qui suit est chiffré
  S->>C: Demande d'authentification
  C->>S: Mot de passe (ou clé privée)
  S-->>C: Authentification OK → shell ouvert

Sécuriser le serveur SSH (/etc/ssh/sshd_config)

# Afficher la config actuelle
sudo grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"

# Paramètres de sécurité recommandés
Port 22                    # Changer pour obscurcir (ex: 2222)
PermitRootLogin no         # Ne jamais laisser root se connecter en SSH
PasswordAuthentication no  # Désactiver les mots de passe (utiliser les clés)
AllowUsers alice jean-tech # Whitelist des utilisateurs autorisés
MaxAuthTries 3             # Limiter les tentatives

Après modification, recharger :

sudo systemctl reload sshd

Cas concret

Un technicien de permanence doit redémarrer Apache sur le serveur GLPI depuis son domicile :

# 1. Connexion SSH depuis Windows (PowerShell)
ssh jean-tech@10.0.0.5 -p 22

# 2. Vérifier l'état d'Apache
systemctl status apache2

# 3. Redémarrer le service
sudo systemctl restart apache2

# 4. Vérifier que GLPI répond
curl -s -o /dev/null -w "%{http_code}" http://localhost/glpi/
# 200 = OK

# 5. Déconnexion
exit

Erreurs fréquentes

  • Ignorer la vérification de l'empreinte à la première connexion : si un attaquant intercepte la connexion (man-in-the-middle), vous validerez son certificat. Vérifiez toujours l'empreinte avec l'admin.
  • Laisser PermitRootLogin yes sur un serveur exposé à Internet : les bots testent root en permanence.
  • Confondre scp et cp : scp nécessite le format utilisateur@serveur:chemin pour la partie distante.

À retenir

  • SSH = connexion distante chiffrée sur le port 22.
  • ssh user@ip pour se connecter, scp pour copier des fichiers.
  • PermitRootLogin no est la règle de sécurité minimale côté serveur.

Mini-exercice

Si vous avez une VM Linux : connectez-vous en SSH depuis votre machine hôte avec ssh user@127.0.0.1 (ou l'IP de la VM). Exécutez uptime à distance avec ssh user@IP "uptime" sans ouvrir de session interactive.

Quiz de validation

Quiz - 6 questions

1. Sur quel port TCP SSH écoute-t-il par défaut ?

2. Quelle commande copie le fichier local 'rapport.pdf' dans /home/alice/ sur le serveur 192.168.1.10 ?

3. Que signifie 'PermitRootLogin no' dans /etc/ssh/sshd_config ?

4. Où SSH stocke-t-il les empreintes des serveurs connus pour éviter les attaques man-in-the-middle ?

5. Comment exécuter la commande 'df -h' sur un serveur distant sans ouvrir de session SSH interactive ?

6. Après avoir modifié /etc/ssh/sshd_config, quelle commande applique les changements sans couper les sessions actives ?

Suis ta progression

Crée un compte gratuit pour suivre ta progression et accéder à toutes les leçons.