Jenkins - 3.2 Générer une clé SSH et finaliser l'image Docker

La connexion par mot de passe fonctionne, mais une clé est plus sécurisée. Cette leçon crée une paire de clés, copie la clé publique dans l'image Docker et prépare le démarrage du service SSH. Ces étapes complètent le Dockerfile de la leçon précédente.

Créer la paire de clés

Une clé SSH se compose d'une clé privée et d'une clé publique. La clé privée reste sur la machine qui se connecte, tandis que la clé publique est copiée sur le serveur.

La vidéo crée la paire avec la commande ssh-keygen et lui donne le nom remote. Le mot de passe de la clé est laissé vide en validant directement.

ssh-keygen -f remote

Compléter le Dockerfile

Le Dockerfile reçoit plusieurs instructions supplémentaires. Chacune prépare une partie de la connexion.

  • Copier le fichier remote.pub dans le dossier .ssh de l'utilisateur, avec une instruction COPY.
  • Donner la propriété de ce dossier à remote_user avec une instruction RUN chown.
  • Ajuster les permissions du dossier et du fichier copiés.
  • Générer les clés globales de SSH avec une instruction RUN, car SSH en a besoin.
  • Définir une instruction CMD qui indique la commande lancée au démarrage du conteneur, celle qui démarre le service SSH.

En résumé

Une paire de clés remplace le mot de passe pour la connexion. La clé publique est copiée dans l'image, la clé privée reste sur la machine cliente. Le Dockerfile se termine par CMD, qui démarre le service SSH au lancement du conteneur.

Points clés

  • La clé privée reste sur la machine qui se connecte.
  • La clé publique remote.pub est copiée dans l'image.
  • Le propriétaire du dossier .ssh doit être remote_user.
  • L'instruction CMD lance le service SSH au démarrage du conteneur.
  • Une clé permet une connexion sans mot de passe.

Questions fréquentes

Pourquoi une clé plutôt qu'un mot de passe ?

La vidéo présente la clé comme une connexion plus sécurisée. La clé privée authentifie la connexion automatiquement.

Que deviennent les deux fichiers créés ?

Le fichier remote est la clé privée, et remote.pub est la clé publique. Seule la clé publique est copiée dans l'image.

À quoi sert l'instruction CMD ?

Elle indique au conteneur quelle commande lancer au démarrage, ici celle qui démarre SSH.