Ranger propremement ses clés ssh
Nov 30, 2017 · 685 words · 4 minutes read
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é.
Utiliser la clé par défaut
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