Une petite recherche internet en utilisant votre moteur favori devrait vous éclairer sur le pourquoi du comment. Par exemple « authentification clef publique ssh ».
Pour les gens pressés qui ont été envoyés ici parce qu’ils ont besoin d’une « clef publique ssh » …
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
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.
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’:
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