Synchroniser ses clés SSH dans les nuages
- Unix
Lorsque l’on a plusieurs machines et que ces machines servent à faire du développement, il y a toujours un moment ou l’on se pose la question de la synchronisation des données entre ses deux postes.
Heureusement pour les fichiers que l’on souhaite partager, il existe solutions comme Dropbox ou d’autre alternatives simple à utiliser, mais comment faire pour des fichiers sensibles comme des clés SSH…
Les clés SSH sont des données vraiment critiques pour moi, au lieu de se souvenir des mots de passe et les saisir à chaque fois, je préfère utiliser des clés SSH et être connecté directement. De plus il est vraiment simple de gérer ses clés SSH pour ses différents serveurs. Du coup, il peut être fastidieux de transférer ses clés SSH d’une machine à une autre avec une clé USB par exemple, pourquoi ne pas utiliser la puissance d’internet pour faciliter la synchro ?
Les application de type Dropbox
Je ne présente pas Dropbox, avec Dropbox il y a deux techniques qui peuvent être utilisées :
- On stocke les clés SSH dans un répertoire synchornisé par Dropbox et on fait un symlink vers le répertoire
~/.ssh
- On génère une image DMG protégée par un mot de passe que l’on monte à chaque démarrage et là encore il faut faire un symlink vers
~/.ssh
.
L’inconvénient de la première méthode, c’est que tout est en clair et qu les employés de Dropbox ont accès à vos données et je ne suis pas trop fan.
Pour la seconde, niveau sécurité des données c’est mieux car il faudra saisi le mot de passe de l’image à chaque démarrage mais je ne sais pas si les machines Linux savent monter une image DMG protégé par mot de passe, sans mot de passe c’est possible.
La seconde solution à ma préférence mais voir mes données critiques synchronisé sur Dropbox m’embête toujours un peu…
Un dépôt git
Comme pour vos dotfiles, on peut créer un dépôt privé “sshfiles” qui contiendra le contenu du répertoire `~/.ssg. On push vers le serveur les modifications et on pull sur la seconde machine.
L’avantage de cette solution est qu’elle prend en compte le versionning de la configuration SSH, même si on ne change pas la configuration tous les jours, cela peut être pratique et éviter des galères si on supprime une mauvaise clé.
L’inconvénient, c’est que la sécurité des clés repose sur la sécurité du serveur SSH, si quelqu’un parvient à se connecter à votre serveur toutes vos clés sont compromises. Ainsi, je ne vous conseillerai pas de stocker vos données sur un dépôt Github privé à cause de leur soucis d’uptime récent (et encore moins sur un dépôt privé), mais plutôt sur un serveur privé.
En faisant ainsi, assurez-vous que votre serveur est bien sécurisé
Conclusion
Une solution capable d
Si jamais vous avez un doute sur la sécurité de vos clés et que vous n’en avez pas cinquante, il peut être sage de créer de nouvelle clés.
Et vous, comment gérer vous vos clés SSH ? Je suis très curieux de savoir…