Table des matières

C’est quoi ssh ?

Une petite recherche internet en utilisant votre moteur favori devrait vous éclairer sur le pourquoi du comment. Par exemple « authentification clef publique ssh ».

Guide de survie ssh

Pour les gens pressés qui ont été envoyés ici parce qu’ils ont besoin d’une « clef publique ssh » …

Génération d’une paire de clefs

Une commande, des instructions à lire et à la clé¹ des fichiers générés :

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/USERNAME/.ssh/id_rsa): -> Entrée ou saisie de /chemin_choisi/id_rsa
Enter passphrase (empty for no passphrase): -> Votre PassPhrase
Enter same passphrase again: -> Votre PassPhrase
Your identification has been saved in /chemin_choisi/id_rsa.
Your public key has been saved in /chemin_choisi/id_rsa.pub.
The key fingerprint is:
df:92:f0:27:7d:ca:64:55:7e:ec:26:36:cd:bb:4f:7f USERNAME@HOSTNAME
The key’s randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                .|
|               + |
|            S . +|
|         + + . +.|
|          * * = *|
|           B + =E|
|             o o*|
+-----------------+

Vous pouvez mettre une PassPhrase vide mais dans ce cas votre clef privée n’est pas protégée et son vol serait problématique.

Votre clef privée (chiffrée) et votre clef publique sont dans des fichiers texte, dont le chemin est indiqué dans le texte affiché : dans notre exemple, la clef privée est dans /chemin_choisi/id_rsa et la clef publique dans /chemin_choisi/id_rsa.pub.

Vous ne devez jamais communiquer la clef privée à un tiers, même de confiance. Seule la clef publique (extension « .pub ») est à partager lorsqu’elle vous est demandée.

¹: jeu de mot intentionnel

Ajout d'une clef publique sur le gitlab unicaen

Sur gitlab, allez sur votre profil (bouton en haut à droite du menu de gauche, puis «Edit profile»). Choisissez «SSH Keys» dans le menu, puis cliquez sur le bouton «Add new key». Dans le champ «Key», collez le contenu du fichier d'extension .pub, réglez éventuellement les options, puis validez en cliquant sur «Add key».

ATTENTION, il y a un délai de synchronisation de quelques minutes (normalement moins de 5) avant que la clef soit utilisable pour accéder à vos dépôts en ligne de commande.

Transfert d’une clef publique vers une machine

Sur une machine à laquelle vous avez déjà un accès :

$ ssh-copy-id USERNAME@HOSTNAME

Lors du transfert, vous devrez utiliser un mécanisme d’authentification qui ne met pas en œuvre la clef à transférer puisqu’elle n’est pas encore sur le compte USERNAME de la machine HOSTNAME. Une fois la clef publique transférée, une nouvelle connexion devrait vous demander la PassPhrase :

$ ssh USERNAME@HOSTNAME
Enter passphrase for key ’/chemin_choisi/id_rsa’:

Édition ou consultation de la liste des clefs autorisées dans un compte

Sauf configuration différente au niveau du service sshd, l’emplacement du fichier contenant les clefs publiques autorisées à se connecter sur un compte est dans :

cat ${HOME}/.ssh/authorized_keys