Déverrouillez vos clés SSH au démarrage de session

Shell icon

Chose bien pratique, c’est de n’avoir qu’une seule fois à déverrouiller une clé lorsqu’on utilise ssh plusieurs fois par jours.

Par défaut, à chaque connexion ssh, il faut entrer le mot de passe associé à la clé. Quand on l’utilise 2 ou 3 fois par jours, ça peut aller. Mais si, comme dans mon cas, vous l’utilisez au minimum 20 fois par jours, ça devient très vite fatiguant.

L’astuce consiste simplement à ajouter la clé dans l’agent qui gère ces clés (ssh-agent ou seahorse-agent) :

$ ssh-add ~/.ssh/votre_cle_ssh
Enter passphrase for ~/.ssh/votre_cle_ssh:
Identity added: ~/.ssh/votre_cle_ssh (~/.ssh/votre_cle_ssh)

Et voila.

Seulement, cela fonctionnera uniquement pour la session en cours. Redémarrez, et vous devrez refaire cette manipulation.

Utilisant KDE, j’ai décidé d’utiliser le Kwallet qui gère les mots de passe de la session KDE. Il demande un seul mot de passe pour déverrouiller les autres qu’il gère, par exemple des calendriers Google calendar, etc.

Pour ce faire, ce n’est pas du tout compliqué.

Créez un script bash qui s’exécutera au démarrage de la session KDE :

$ nano ~/.kde/Autostart/ssh-add.sh

sur certaines distributions, le dossier ~/.kde/ se nomme ~/.kde4/

Saisissez les commandes d’ajout d’identité pour votre clé (ou vos clés si vous en avez plusieurs) :

#!/bin/bash
ssh-add ~/.ssh/votre_cle_ssh_1 </dev/null
ssh-add ~/.ssh/votre_cle_ssh_2 </dev/null

Rendez le script exécutable :

$ chmod +x ~/.kde/Autostart/ssh-add.sh

Exécutez-le une fois pour la session courante (vous serez invité à saisir le mot de passe associé à votre clé) :

$ bash ~/.kde/Autostart/ssh-add.sh

Au prochain démarrage de votre session, le mot de passe de Kwallet vous sera demandé, et déverrouillera par la même occasion vos clé ssh.

Un commentaire