Dans le cadre d’un déploiement SSH avec les GitHub Actions, j’ai dû générer une clef privée depuis ma Linux Debian.

Le but de la génération d’une nouvelle paire de clef privée / clef publique permet surtout de ne pas utiliser les siennes pour se connecter au serveur.
Si jamais ces clefs venaient à être supprimées ou corrompues, il n’y aurait aucun problème.
Voici donc comment générer une clé privée sous Linux.
Créer une nouvelle paire de clefs privée/publique sous Debian
Pour créer une nouvelle clé privée sous Linux, il suffit de lancer la commande suivante :
ssh-keygen
Personnellement, je la lance sans option.
Je fais totalement confiance à l’équipe d’OpenSSH pour choisir pour moi les meilleures options de sécurité.
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/alex/.ssh/id_rsa): id_rsa_github_action_formation
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_github_action_formation.
Your public key has been saved in id_rsa_github_action_formation.pub.
The key fingerprint is:
SHA256:oKNNR+uOXWAq27RSEkNQEZE8yeaThH5yFm1TZ9vFiJU alex@com
The key's randomart image is:
+---[RSA 2048]----+
|.*=*. .. oo.+. |
|. X. + o.oE.. |
|.= oo + . . |
| o*+ o o |
| =++ = S |
| .+.* . |
| oo+ . . |
| .= = . |
| ..+ o |
+----[SHA256]-----+
Les clefs générées se trouveront dans le répertoire courant.
alex@com:~$ ls -l
total 8
-rw------- 1 alex alex 1811 Jul 7 13:21 id_rsa_github_action_formation
-rw-r--r-- 1 alex alex 393 Jul 7 13:21 id_rsa_github_action_formation.pub
Si jamais vous voulez vous connecter à un autre serveur, vous pourrez utiliser la clef publique que l’on vient de générer pour cela.
Générer une clé privée sous Linux est aussi facile que ça !
Ne confondez d’ailleurs pas clef publique et clef privée…
Une clef privée a cette tête :
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAtehkxezF0dOVCpSnFt2orw+HTbOyUTW+IoXeylkj2HZnSZoDUjSm
xjJE33oV9E5wXcyyu2Bo7lFaULFVuC+oTZFMJMbK/lkgzQ9CFIm19BpRshhJMFa2Sb48H+
gL9CuzoSNuOB0HCwLhui6CWlbbEm1JOzcO75ece5/Qkh+p/XOmQPBkHo7Y8JjYIEzaGpz5
BigBj49mqvvoFxU8F2VZip/V6uJnh9XdDQJ5K1kZR98b0tknwRTCt/++cDgBpXgkYylOaS
Fh98agrf0wtnWCKB+/RXd5eU4j8mDaofOwuBXSyzxvR6ipcn9MuIJD6dcu6AcqGIbvlJ8d
gHlRNJiM/wAAA8Cou7W+qLu1vgAAAAdzc2gtcnNhAAABAQC16GTF7MXR05UKlKcW3aivD4
dNs7JRNb4ihd7KWSPYdmdJmgNSNKbGMkTfehX0TnBdzLK7YGjuUVpQsVW4L6hNkUwkxsr+
WSDND0IUibX0GlGyGEkwVrZJvjwf6Av0K7OhI244HQcLAuG6LoJaVtsSbUk7Nw7vl5x7n9
CSH6n9c6ZA8GQejtjwmNggTNoanPkGKAGPj2aq++gXFTwXZVmKn9Xq4meH1d0NAnkrWRlH
3xvS2SfBFMK3/75wOAGleCRjKU5pIWH3xqCt/TC2dYIoH79Fd3l5TiPyYNqh87C4FdLLPG
9HqKlyf0y4gkPp1y7oByoYhu+Unx2AeVE0mIz/AAAAAwEAAQAAAQBvAxr0uvFigugS4/Mw
fidiZmyhG8f3zX9yXBZBkLLSeDfCcA4UzfL1Q1pKs5vQU0o5xCFTPpvqzJT8Z6yzUco5RD
Gew/6/yC6/Vc9y7zOue51dvXp02IY4bLMOmbMp2L2v2gp6jiRtMN4GnDmK3jSlgzJMw+YG
i5TA0SAc/NvlwvVayu1t6tY5IkOFpfFNTx9HJUkS7YaHvR0uiSjkxY/0B3MiFyUNKzpuPD
HkX/IsMvRfYhpri6uDGZ6ZMb1SXT7O68Pmj2hgI60k5YB2H5XLHEd/LQO+7j8PJ682uGLP
ScWZpAftNOEw6Cq81oUEr4Gm6l8So5NRhH0nkTTNn0NBAAAAgF3nk9IBONFU75uqY0E67i
oTSoU5dtsQnBaL0zzYgqVq+Ezm2w2lXc+DLyf9IDWGrfQpz9A4AHM6Et0Lq7FrXcnB8IZL
MNrN+yxiNfNElvjyvlaJiIQ2t7RcBA8bgsqbxfNP+HC1SBm397GfsZ8axnS+hb6NbM4Cut
vF/SNUHwXDAAAAgQDk40spv0+QvFNBOF+hspjh8fvUN/XnZgSgOx5rlASiJgieV3n7zgOP
eoMnTkBi/H6Sd6vOuSHfC0zH6uCq+B7purABnxUwkntgNv9TO6eH3i29KE6cVn3bLAehEJ
VhbIDpyadW1YWOgxwxGRu5ZYw7Bcy3JoOzEoPtUxqLtZ+wHwAAAIEAy3R+lcA5WPy95Qwo
mdMrR0tYBxBkrMB1d3HtIJm2szjjzTd3C7SYvkFgQYGHGMa2mr0TB2kJGYnvfAYG71D83v
JFeUxfUg/WJ10VX30fE4xg9/jdIu5AEwZTgA0FiJ3SY/0PNNGu4H9GW5eb7/5lwc67OGqX
2bRzIYGYlMSOByEAAAALY29kZWluQHJpYWM=
-----END OPENSSH PRIVATE KEY-----
Une clef publique a cette tête :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC16GTF7MXR05UKlKcW3aivD4dNs7JRNb4ihd7KWSPYdmdJmgNSNKbGMkTfehX0TnBdzLK7YGjuUVpQsVW4L6hNkUwkxsr+WSDND0IUibX0GlGyGEkwVrZJvjwf6Av0K7OhI244HQcLAuG6LoJaVtsSbUk7Nw7vl5x7n9CSH6n9c6ZA8GQejtjwmNggTNoanPkGKAGPj2aq++gXFTwXZVmKn9Xq4meH1d0NAnkrWRlH3xvS2SfBFMK3/75wOAGleCRjKU5pIWH3xqCt/TC2dYIoH79Fd3l5TiPyYNqh87C4FdLLPG9HqKlyf0y4gkPp1y7oByoYhu+Unx2AeVE0mIz/ alex@com
Se connecter à un serveur avec une clef privée
Une fois que l’on a généré une clé privée sous Linux, on peut ajouter la clef publique dans le fichier ~/.ssh/authorized_keys
.
Comme ceci :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC16GTF7MXR05UKlKcW3aivD4dNs7JRNb4ihd7KWSPYdmdJmgNSNKbGMkTfehX0TnBdzLK7YGjuUVpQsVW4L6hNkUwkxsr+WSDND0IUibX0GlGyGEkwVrZJvjwf6Av0K7OhI244HQcLAuG6LoJaVtsSbUk7Nw7vl5x7n9CSH6n9c6ZA8GQejtjwmNggTNoanPkGKAGPj2aq++gXFTwXZVmKn9Xq4meH1d0NAnkrWRlH3xvS2SfBFMK3/75wOAGleCRjKU5pIWH3xqCt/TC2dYIoH79Fd3l5TiPyYNqh87C4FdLLPG9HqKlyf0y4gkPp1y7oByoYhu+Unx2AeVE0mIz/ alex@com
De cette manière, on est capable de se connecter depuis un autre ordinateur avec la clef privée en paramètre de ssh -i
.
$ ssh -i id_rsa_github_action_formation alex@serveur
Génération de clef et sécurité
Pour rappel, la clef publique peut être donnée aux différents interlocuteurs sans problème.
En revanche la clef privée ne doit être communiquée qu’aux personnes de confiance.
En ayant la clef privée on peut déduire la clef publique et surtout, on peut se faire passer pour vous.
La passphrase permet à chaque utilisation de la clef de déchiffrer la clef privée, ce qui est une bonne sécurité contre le piratage, pensez à en utiliser !
Attention tout de même, car si vous perdez votre passphrase, vous risquez de ne plus pouvoir utiliser votre clef…
Merci ssh-agent
.