Skip to content

SSH et Configuration propre

C'est quoi ?

SSH est un protocole de communication (comme FTP, HTTP, ect...) qui se base dans le terminal. Il permet de contrôler une fenetre de commandes d'un ordinateur à distance. Si SSH est activé sur un PC, un utilisateur connaissant les logins du PC distant pourra ouvrir un terminal à distance directement sur son ordinateur.

Pour plus de sécurité, il est préférable d'utiliser un système de clés publiques/privées pour ne pas envoyer ces identifiants dans la nature en clair.

On va voir comment configurer une connexion SSH proprement entre deux PC.

Étape 1 : Créer une clé sur le PC Hôte

On crée d'abord notre clé SSH pour authentifier notre ordinateur via cette commande :

ssh-keygen -t ed25519 -C "nom_de_votre_pc"

En résumé, on utilise la commande ssh-keygen, préinstallée sur les distros UNIX et macOS, qui crée des clé et on lui demande une clé encryptée avec le protocole ed25519 via -t, recommandé car efficace et robuste, puis on donne le nom du PC qu'on authentifie avec -C.

On nous demandera alors dans quel répertoire stocker la clé, généralement il vous proposera dans votre répertoire home /.ssh/id_ed25519 et aussi si l'on veut protéger la clé avec un mot de passe.

Répertoire de la clé

La clé donc sera stockée dans le répertoire .ssh/id_ed25519 comme dit plus tôt. Dans ce même répertoire, on y retrouvera deux fichiers :

  • id_ed25519 <- Celle-ci est la clé privée et ne doit EN AUCUN CAS être partagée
  • id_ed25519.pub <- Celle-ci c'est la publique qui sera partagée entre les ordinateurs

Étape 2 : Envoyer la clé sur le PC distant

Maintenant que l'on a notre clé, on doit la partager au PC distant, pour se faire, on devra une dernière fois utiliser les identifiants de l'utilisateur du PC distant via la commande :

ssh-copy-id utilisateur@adresse_ip_du_pc_distant

On nous demandera alors le mot de passe de l'utilisateur distant et enfin l'action sera effectuée, notre PC hôte est maintenant authentifié par le PC distant !

La commande ici à tout simplement copié notre clé publique crée plus tôt id_ed25519.pub avec la commande ssh-copy-id et l'a rangée dans un registre de clés dans le fichier rangé dans le répertoire .ssh/authorized_keys.

Étape 3 : Essayer cette configuration

Pour tester si tout fonctionne, il faut tout simplement lancer une connexion SSH avec la commande :

ssh utilisateur@adresse_ip_du_pc_distant

Si aucun mot de passe n'a été demandé, c'est que le PC distant nous à bien reconnu, c'est carré dans l'axe !

Optionnel mais recommandé : Désactiver les identifiants utilisateur

Pour sécuriser le PC distant d'intrusions avec les identifiants qui auraient pu fuiter, on peut désactiver l'authentification via les identifiants utilisateur en éditant le fichier de configuration du SSH avec cette commande sur le PC distant :

sudo nano /etc/ssh/sshd_config

Dans ce fichier, une ligne nous interesse, celle-ci :

# PasswordAuthentication no

On retire le # et voila, l'authentification via le mot de passe est désactivé. Plus qu'a lancer une commande qui redémarre le serveur SSH du PC :

sudo systemctl restart ssh

Et c'est tout bon, on a configuré un accès SSH proprement avec un PC distant.