Table de Matieres
I. Présentation
Pour s’authentifier et se connecter de manière sécurisée à un service ou un serveur, on a 2 possibilités sous Linux : le classique (et désuet) login / mot de passe, ou la clé SSH, protégée par une passphrase.
Plus besoin de se souvenir de 36 mots de passe différents : une clé SSH et c’est parti.
Oui, mais voilà : Quand on est amené à se connecter plusieurs fois par jour à des serveurs via SSH, ou qu’on effectue des rafraîchissements de son repository Git à partir du serveur, la passphrase nous sera demandée, systématiquement, à chaque nouvelle connexion.
Ce qui peut être vraiment lourd au bout de la cinquantième fois.
J’ai une astuce pour vous : vous connaissez Keepass ? Et bien on va reprendre le même principe : on va stocker de manière sécurisée la clé SSH ainsi que la passphrase dans un coffre sécurisé.
Ainsi, plus besoin de taper 50 fois votre passphrase chaque jour, vous ne la saisirez plus qu’une seule fois, au démarrage de votre système Linux. Et la magie fera le reste ! ?
II. Prérequis
III. Vérifier la présence de la clé SSH
Pour commencer, on va vérifier que votre clé SSH est bien présente sur votre système Linux.
Pour cela, ouvrez un terminal, et tapez la commande :
ls -al ~/.ssh
Vous devriez voir apparaître plusieurs fichiers, celui qui nous intéresse étant id_rsa.
Note : ~ correspond au chemin de votre profil sous Linux, dans mon cas, il s’agit de : /home/thibault, comme on peut le voir sur la capture d’écran ci-dessus.
Avant d’installer et de configurer Keychain, une dernière chose à vérifier : votre clé SSH est une clé privée. Mais on va tout de même s’en assurer du côté des permissions de Linux :
On peut voir dans mon cas que ma clé privée (le fichier id_rsa) n’est pas vraiment privée. On va changer ça de suite, pour éviter des messages d’erreur de nos applications préférées :
sudo chmod 600 ~/.ssh/id_rsa
Note : Si vous n’êtes pas propriétaire des fichiers se trouvant dans votre dossier .ssh, il faudra vous réattribuer la propriété, sinon vous aurez des difficultés pour lire les fichiers.
Dans mon cas, mon nom d’utilisateur étant « thibault », cela donne :
sudo chown thibault:thibault ~/.ssh/id_rsa
On vient d’accorder des droits en lecture / écriture uniquement au propriétaire du fichier, et à personne d’autre. On ne peut pas faire plus privé. ?
IV. Installer et configurer Keychain pour sauvegarder automatiquement la passphrase
Ceux qui me connaissent savent que j’utilise Git pour le versioning de la totalité de mes scripts et des configurations serveurs / logiciels.
Et pour l’exemple, j’ai effectué un git clone, pour copier le contenu d’un répertoire distant (un repository) sur un répertoire local de mon poste. L’authentification s’effectue via ma clé SSH, et forcément, Git me demande de confirmer ma passphrase avant de lancer les actions.
Le truc particulièrement énervant, et notamment quand notre passphrase fait plus de 25 caractères, c’est que si je réexécute la même commande quelques secondes plus tard, je vais devoir à nouveau renseigner la passphrase.
Plutôt fastidieux, notamment lorsqu’on est dans mon cas et qu’on doit la renseigner plus de 50 fois par jour…
Pour éviter de taper encore et encore la même passphrase à chaque fois que l’on fait appel à notre clé SSH, on va s’installer Keychain, puis le configurer.
Pour l’installation, on reste sur du classique de chez classique :
sudo apt install -y keychain
Note : le -y indique de répondre « Oui » à la question : Êtes-vous sûr de vouloir continuer ? Une option particulièrement utile pour l’automatisation.
Pour vérifier que Keychain est bien installé sur votre système, tapez :
keychain --version
Il vous reste maintenant à modifier votre profil pour ajouter la configuration de keychain. Pour cela, ouvrez le fichier ~/.bashrc dans votre éditeur de texte préféré. Dans mon cas, j’utilise vim, mais libre à vous de passer sur d’autres éditeurs :
vim ~/.bashrc
Et ajoutez la ligne suivante à la fin du fichier :
eval `keychain --eval --agents ssh id_rsa
À chaque fois que vous rebooterez votre serveur ou que vous démarrerez, un nouveau terminal, keychain s’exécutera.
À la première exécution suite à un reboot, keychain reconnaîtra votre clé SSH et vous demandera de saisir la passphrase :
Par la suite, à chaque nouveau terminal créé, keychain vous avertira qu’il a déjà en stock la clé SSH ainsi que la passphrase. Plus besoin de la taper du coup, keychain s’en chargera à votre place à chaque fois que le système en aura besoin pour se connecter à une ressource distante.
V. Conclusion
Comment s’en assurer ? Dans mon cas, je crée un nouveau répertoire de test et je relance la copie de mon repository Git avec la commande :
git clone
Et pouf ! Par magie, ça se fait, sans action de ma part : plus besoin de taper ma passphrase tout au long de la journée. Je la saisis le matin en arrivant et c’est réglé.
Sacré gain de temps, n’est-ce pas ?
Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca