CodeGym /Cours /Docker SELF /Introduction à SSH : configuration de l'accès distant, ut...

Introduction à SSH : configuration de l'accès distant, utilisation des clés

Docker SELF
Niveau 4 , Leçon 3
Disponible

1. C'est quoi SSH ?

Imagine que tu es à un bout de la planète, et qu'un serveur que tu dois configurer est à l'autre. Travailler comme un technicien IT d'école en courant entre les salles, c'est pas vraiment ce qu'on veut. Heureusement, il y a SSH (Secure SHell) — un outil pour gérer les serveurs à distance.

SSH, c'est un protocole réseau qui te permet de te connecter en toute sécurité à des ordinateurs distants. La connexion se fait grâce au chiffrement, ce qui signifie que les données transmises sont protégées contre les regards indiscrets. SSH remplace les méthodes obsolètes comme Telnet, qui transmettaient les données en clair (un peu comme une carte postale de La Poste).

Avantages de SSH

  1. Sécurité. SSH utilise le chiffrement, protégeant les données contre les interceptions.
  2. Flexibilité. Gestion à distance des serveurs, transfert de fichiers, création de tunnels — tout ça est possible avec SSH.
  3. Compatibilité multiplateforme. Fonctionne sur Linux, Windows (y compris WSL), et MacOS.

Maintenant que tu comprends pourquoi SSH est utile, passons à la pratique.


2. Installation du client SSH

Commençons par le client, qui permettra de se connecter au serveur. Si tu utilises une distribution Linux moderne, il y a de grandes chances que le client SSH soit déjà installé. Vérifions ça :

ssh -V

Tu devrais voir des infos sur la version du client SSH. Si la commande n'est pas trouvée, installe-le (sur Ubuntu et autres distributions basées sur Debian) :

sudo apt update
sudo apt install openssh-client

Sur MacOS, le client SSH est préinstallé, et si tu travailles sur WSL, l'installation est similaire à celle de Linux.


3. Connexion à un serveur distant via SSH

La connexion au serveur s'effectue avec la commande suivante :

ssh username@hostname
  • username — c'est le nom de l'utilisateur sur le serveur distant.
  • hostname — c'est l'adresse IP ou le nom de domaine du serveur.

Exemple de connexion :

ssh student@192.168.1.10

Si tout est bien configuré, le système demandera un mot de passe. Après avoir entré le mot de passe, vous serez dans la console distante du serveur. Félicitations, vous êtes à mi-chemin vers la profession d'« opérateur du super méchant dans un film de hackers ».


4. Installation et configuration du serveur SSH

Installation du serveur SSH

Si tu travailles sur un serveur ou une machine locale où tu veux te connecter, il faut installer le serveur SSH. Sur Ubuntu, fais-le comme suit :

sudo apt update
sudo apt install openssh-server

Vérifions le statut du service SSH :

sudo systemctl status ssh

Tu devrais voir un message comme active (running). Si le serveur n'est pas démarré, utilise :

sudo systemctl start ssh
sudo systemctl enable ssh

Maintenant, le serveur SSH est prêt à accepter des connexions.


Configuration du serveur SSH

Le fichier de configuration principal du serveur SSH est /etc/ssh/sshd_config. Pour l'éditer, utilise un éditeur de texte comme nano :

sudo nano /etc/ssh/sshd_config

Fais attention aux paramètres suivants :

  • Port 22 — le port sur lequel fonctionne SSH.
  • PermitRootLogin no — interdiction de connexion pour root (il est recommandé de laisser no pour des raisons de sécurité).
  • PasswordAuthentication yes — autorisation de connexion par mot de passe.

Après avoir modifié les paramètres, redémarre le serveur SSH :

sudo systemctl restart ssh

5. Utilisation de l'authentification par clé

Se connecter avec un mot de passe, c'est pratique, mais pas super sécurisé. La meilleure option : utiliser des clés SSH.

Génération des clés SSH

Sur la machine cliente, exécute la commande suivante :

ssh-keygen

Le script te demandera où sauvegarder la clé (par défaut ~/.ssh/id_rsa). Tu peux juste appuyer sur Entrée pour accepter. Ensuite, il te demandera une passphrase. Il vaut mieux laisser vide pour simplifier (mais c'est un peu moins sûr).

Une fois la commande exécutée, les fichiers de clés seront créés :

  • id_rsa — clé privée (ne la rends pas publique, comme le code source de ton projet avant un release, surtout s'il est encore plein de dettes techniques).
  • id_rsa.pub — clé publique (celle-ci, tu peux l'utiliser pour te connecter).

Transférer la clé vers le serveur

Utilise la commande ssh-copy-id pour envoyer la clé publique au serveur :

ssh-copy-id username@hostname

Ça va ajouter ta clé publique dans le fichier ~/.ssh/authorized_keys sur le serveur. Maintenant, tu peux te connecter sans mot de passe.

Essaie :

ssh username@hostname

Si tout a fonctionné, on ne te demandera pas de mot de passe. Ta vie est officiellement devenue un peu plus simple.

SSH et WSL

Si tu bosses sur Windows via WSL, tu peux aussi utiliser SSH. Ouvre le terminal WSL et installe le client SSH :

sudo apt update
sudo apt install openssh-client

Les étapes suivantes sont les mêmes que pour Linux.


6. Partie pratique : configurer SSH sur localhost

Pour la pratique, tu peux configurer une connexion SSH entre deux machines sur le même réseau ou même sur ton propre ordinateur (en utilisant localhost comme adresse).

  1. Installe le serveur et le client SSH sur une machine.
  2. Connecte-toi via l'adresse locale :
ssh your_user@localhost
  1. Configure la connexion via clé, comme montré précédemment.

Au final, tu devrais avoir une connexion sans saisie de mot de passe.


7. Travailler avec des configurations et des alias SSH

Si tu te connectes souvent à différents serveurs, tu peux te simplifier la vie en ajoutant une configuration SSH dans le fichier ~/.ssh/config :

Host myserver
    HostName 192.168.1.10
    User student
    IdentityFile ~/.ssh/id_rsa

Maintenant, tu peux te connecter simplement avec la commande :

ssh myserver

Erreurs fréquentes et leur correction

  1. Erreur "Connection refused". Cela signifie que le serveur SSH n'est pas lancé sur la machine distante. Assure-toi qu'il est installé et lancé.

  2. Erreur "Permission denied". Soit tu as entré un mot de passe incorrect, soit les clés sont mal configurées. Vérifie le contenu du fichier ~/.ssh/authorized_keys sur le serveur.

  3. Erreur "No route to host". Vérifie si le serveur est accessible sur le réseau (utilise ping).


Maintenant, tu as les connaissances pour configurer SSH, utiliser des clés et éviter les problèmes courants. C'est un outil puissant utilisé partout, que ce soit pour la configuration de serveurs au travail ou la gestion d'un Raspberry Pi à la maison.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION