Ranger propremement ses clés ssh

Nov 30, 2017 · 685 words · 4 minutes read system

J’avais depuis un petit bout de temps cette manipulation qui me permet de ranger proprement les clés ssh sans polluer le fichier maitre. Je vous la confie…​

Si vous êtes comme moi, a avoir des comptes github, bitbucket, etc…​ La gestion des clé ssh peut commencer à s’averer un peu c…​ car elles sont toutes inclues dans le fichier principal stockant les clés. Cependant une petite manip simple permet de ranger proprement vos clé et de les gérer en tout sérenité.

Pour notre exemple, voici la marche à suivre pour inclure votre clé ssh à un compte bitbucket afin de l’utiliser tranquilement sur votre poste.

Génération de la clé SSH

Les clé SSH sont basé sur une identi cation asymétrique (clé privé / publique). Vous avez plusieurs solutions pour générer ce type de clé.

  1. Utiliser la clé par défaut

  2. Créer une clé distinct pour chacun de vos id demandant la gestion de clé. (je préconise celle là)

Génération de la clé par défaut

Pour tous les système, en ligne de commande (mes exemples se base sur un OS Unix, mais les commandes sont sensiblement les même pour windows). Dans un premier temps, vérifiez l’existence du répertoire .ssh à la racine de votre répertoire utilisateur. Si il existe et qu’il contient déjà une cĺé par défaut, vous devriez obtenir ceci :

[~]$ ll .ssh
total 72
drwx------+ 11 ptitbob  staff   374B 19 fév 00:30 .
drwxr-xr-x+ 95 ptitbob  staff   3,2K 19 fév 00:47 ..
-rw-------+  1 ptitbob  staff   1,7K 18 fév 23:50 id_rsa
-rw-r--r--+  1 ptitbob  staff   406B 18 fév 23:50 id_rsa.pub
-rw-r--r--+  1 ptitbob  staff   1,2K 19 fév 00:29 known_hosts

Vous devez ajouter votre mail comme lié à votre identifiant par défaut : ssh-keygen -t rsa -C "un des mails défini dans votre compte bitbucket" , cela devrait vous donner ceci :

[.ssh]$ ssh-keygen -t rsa -C "ptitbob@pipo.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ptitbob/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Lorsque le générateur vous demande le nom du fichier, n’en faites rien et tapez sur [ENTREE]…​ La phrase demandé est ce qui permettra d’encoder votre clé et de la décoder :) …​ Un fois cela fait, allez directement au chapitre d’inclusion de la clé SSH dans bitbucket.

Génération d’un clé spécifique que pour bitbucket

Le principe de cette manipulation de gérer ses paires de clé par hôte. Dans notre cas, nous allons générer une clé spécifique à bitbucket. Dans un premier temps générons notre clé dans un fichier bitbucket (par exemple) :

[.ssh]$ssh-keygen -f ~/.ssh/pipo -C "ptitbob@pipo.com"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/ptitbob/.ssh/pipo.
Your public key has been saved in /Users/ptitbob/.ssh/pipo.pub.
The key fingerprint is:
SHA256:L/xXxxp9xXXXxXxXxxXxhXXXU2c38f/9/2xxxXXXx9X ptitbob@pipo.com
The key's randomart image is:
+---[RSA 2048]----+
|             oXxX|
|              o*.|
|             @xXx|
|             .Xoo|
|        S Xo.o. o|
|       _.+x+.o+e.|
|       xo =_=*.=o|
|      7- o=.=*B**|
|          ..o=O*B|
+----[SHA256]-----+

Une fois fait, il va falloir renseigner l’assignation de cette clé à bitbucket. Pour ce faire, il vous faudra créer un fichier config (sans aucune extension) :

[.ssh]$ touch config
[.ssh]$ vi config

Et y inclure ceci :

Host bitbucket.org
 IdentityFile ~/.ssh/bitbucket

Enregistrement de la clé

Les générations précédentes ont créé 2 fichiers, un fichier sans extension et un fichier présentant l’extension .pub , c’est ce dernier qu’il faudra inclure à bitbucket via le menu Gestion de compte / clé SSH.

Une fois ceci réalisé, vous devriez recevoir un mail de la part de bitbucket vous informant de l’enregistrement d’une clé publique SSH. Vous pouvez vérifier l’enregistrement :

[.ssh]$ssh git@bitbucket.org
PTY allocation request failed on channel 0
logged in as ptitbob.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
Connection to bitbucket.org closed.

Vous devriez voir cette alerte :

The authenticity of host 'bitbucket.com (XXX.XXX.XXX.XXX)' can't be established.
# RSA key fingerprint is 28:11:ac:xx:76:16:8x:xx:73:xx:56:3d:xx:df:xx:58.
# Are you sure you want to continue connecting (yes/no)?

Pas de panique, c’est normal, répondez juste yes ! :)

Vous pouvez maintenant cloner les dépots de bitbucket…​

Have fun