Pour un rendu optimal, activez JavaScript

SSH et GPG à la sauce elliptique ED25519

 ·  ☕ 3 min de lecture  ·  🦊 Propositionjoe

Mon aide mémoire.

Ce post constitue un bloc note qui doit permettre de retrouver facilement les commandes utiles pour générer et gérer des clés ssh et gpg ED25519.

Les clés gpg

J’ai profité de ce confinement pour renouveler mon trousseau gpg, et laisser pousser un peu ma barbe. Je l’utilise aussi bien pour signer et chiffrer mes messages et documents, que pour gérer mes mots de passe avec l’aide de l’excellent password-store. J’ai déjà parlé de ce soft ici.

Lister les clés à sa disposition

1
gpg --list-keys

Générer sa clé avec l’algorithme ED25519

1
gpg --full-gen-key --expert

Choisissez l’option 9 (ECC et ECC), puis 1 (Curve 25519), la suite sera à adapter à vos besoins et usages.

Exporter sa clé privée

1
gpg --export-secret-key la.liste.de.chiffre.et.lettre.qu.affiche.la.commande--liste-keys ma.cle.privee.asc

Exporter sa clé publique

1
gpg --export la.liste.de.chiffre.et.lettre.qu.affiche.la.commande--liste-keys > ma.cle.publique.gpg

Importer une clé sur un autre périphérique ou la réimporter, et lui faire confiance

1
2
gpg --import BFCAE59DF0AD6232D53598B3895A46635439274A
gpg --edit-key BFCAE59DF0AD6232D53598B3895A46635439274A trust quit

Supprimer son ancienne clé privée

1
gpg --delete-secret-key BFCAE59DF0AD6232D53598B3895A46635439274A

Supprimer son ancienne clé publique

1
gpg --delete-key BFCAE59DF0AD6232D53598B3895A46635439274A

Je termine en évoquant la procédure de publication et de révocation: je ne le fais pas en ligne de commande. J’ai en effet eu de multiple crise de nerf, sans rien réussir de bon en essayant comme ça. Le plus simple est d’utiliser l’application libre OpenKeychain et les serveurs de keys.openpgp. D’ailleurs leur page web about est excellente.

Les clés ssh

Générer sa clé avec l’algorithme ED25519

1
ssh-keygen -t ed25519 -a 64

Envoyez sa clé sur le serveur

1
ssh-copy-id -i ~/.ssh/cle root@monsite.com -p 38151

Renforcer sa configuration

Les options pour personnaliser et renforcer le protocole de communication ssh est sans limite. Je n’ai pas l’ambition d’être ici exhaustif, mais de décrire ce que j’utilise. Pour choisir mes options je me suis appuyé sur les recommandation de Mozilla.

Pour rappel ssh fonctionne en mode client– serveur, il y a donc deux endroits à configurer: celle du client se fait dans ~/.ssh/config et celle de votre serveur se fait dans /etc/ssh/sshd_config.

Configuration du client
1
nano ~/.ssh/config
# Host keys the client accepts - order here is honored by OpenSSH
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

Et pour se faciliter la vie quand on a plusieurs clés et/ou des ports ssh atypiques.

Host monsite
     HostName monsite.com
     User root
     Port 38151
     IdentityFile ~/.ssh/cle

Avec ces lignes, vous serez en mesure de vous connecter en tapant simplement ssh monsite, très pratique 👍.

Configuration du serveur
1
nano /etc/ssh/sshd_config
Port 38151

# Supported HostKey algorithms by order of preference.
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh$
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,a$
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh$
AuthenticationMethods publickey
UsePrivilegeSeparation sandbox

Pour aller plus loin

Partagez

Propositionjoe
RÉDIGÉ PAR
Propositionjoe
Soyez résolus de ne servir plus et vous voilà libres, Étienne de La Boétie, Bricoleur militant.