Gérer ses hosts SSH "like a boss"
- Unix
La gestion de ses hosts SSH est pour moi quelque chose d’assez bordélique, j’avais d’ailleurs fait un petit article il y a quelques temps qui expliquait comment gérer ses clés SSH pour plusieurs serveur. Avec le temps et l’ajout de serveur mon dossier de config SSH est devenu un bordel monstre.
Manage your SSH like a boss Page Github de storm
C’est tout simplement ce que propose storm. Ajouter, éditer, chercher, lister, supprimer des hosts dans votre configuration SSH de manière très simple et rapide via votre ligne de commande.
Installation
Storm est une application Python qui s’installe très simplement avec pip
et la commande suivante :
$> pip install stormssh
Le process d’installation a pris une bonne minute sur ma machine, c’est un peu long mais comme l’installation nécessite de faire de la compilation, c’est surement un délai raisonnable. Après je ne suis absolument pas un spécialiste Python, donc ma remarque n’est peut être pas pertinente…
Une fois installé, à vous la puissance de la tempête.
Utilisation
Si votre fichier config
contient des informations importantes, mon premier conseil sera de faire un backup ou même plusieurs backup parce qu’on est jamais trop prudent et qu’on est pas à l’abri d’une erreur ou d’un bug du logiciel (même si je n’en ai pas rencontré).
L’utilisation de storm est vraiment simple et facile à appréhender.
Lister les hosts
Commande de base qui comme son nom l’indique permet de faire une liste des hosts. La sortie est ultra complète puisque l’on a le login, l’host, le port, la clé et la configuration qui s’affichent s’il y a lieu.
$> storm list
app-staging -> dev@app-staging.com:22
app-prod -> root@app.com:2013
[...]
(*) -> forwardagent:yes
Ainsi, il est super rapide de retrouver quel est l’alias qui permet de se connecter au serveur désiré à condition de ne pas avoir une liste trop grande.
Chercher un host
Mais si jamais vous avez beaucoup d’host, storm
est capable de faire une recherche dans la liste de vos hosts configurés :
$> storm search prod
app-prod -> root@app.com:2013
app1-prod -> root@app-1.com:22
[...]
Ajouter un host
Avant d’utiliser storm
, je ne peux pas dire que je gérais mes connexions SSH, le terme qui convient mieux était : “j’ajoutais à ma config en bordel”.
A chaque fois j’éditais mon fichier config
pour ajouter un nouveau bloc à la fin du fichier, mais ça c’était avant.
Avec storm, une simple ligne de commande va me créer un alias vers un serveur avec la configuration souhaitée :
$> storm add new-app root@new-app.com:22
success new-app added to your ssh config. you can connect it by typing "ssh new-app".
Ca c’est pour le cas simple sans authentification pour clé SSH, si jamais on veut se connecter avec une clé SSH, il suffit d’ajouter l’argument --id
avec le chemin absolu de la clé :
$> storm add new-app --id ~/.ssh/new-app-key root@new-app.com:22
success new-app added to your ssh config. you can connect it by typing "ssh new-app".
Facile.
Editer un host
L’erreur est humaine, storm
vous autorise à vous tromper. On peut éditer un host en le modifiant à partir de son alias :
$> storm edit new-app root@new-app.com:2013
"new-app" updated successfully.
Il est possible de mettre à jour la conf pour ajouter une clé par exemple.
Supprimer un host
Et bien sûr on peut supprimer un host grâce à son alias encore :
$> storm delete new-app
success hostname "new-app" deleted successfully.
Conclusion
J’ai installé storm
sur mes machines de dev et j’apprécie vraiment ce petit utilitaire qui ne changera pas ma manière de travailler, mais permettra peut être de me faire gagner un peu de temps sur des lancements de projets et de gagner en rigueur dans la gestion de mes hosts.
En faisant cet article, j’en ai profité pour faire un peu le ménage et je suis tombé sur des hosts sur lesquels je ne mettais pas connecté depuis plus de deux ans (la date de mon dernier article).@