sshpass, pour ne plus taper le mot de passe de son compte SSH

closeCet article a été publié il y a 6 ans 8 mois 2 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Globalement, que ce soit à titre personnel ou professionnel, l’utilisation de clé privée est la méthode privilégiée pour me connecter via SSH aux différents serveurs sous ma responsabilité. Mais parfois, pour différentes raisons ce n’est peut-être pas possible et le mot de passe reste de rigueur. Mais devoir récupérer un mot de passe stocké quelque part et le copier/coller à chaque fois (les mots de passes sont générés aléatoirement la plupart du temps, c’est dégueulasse à retenir), j’ai cherché à ne plus avoir à les saisir. Et j’ai trouvé.

Un de mes collègues a réussi à utiliser expect. Pour ma part, sans parvenir à comprendre pourquoi, je n’ai pas réussi à le faire fonctionner, du coup, j’ai cherché et trouvé une autre solution : sshpass.

Il est packagé pour la plupart des distributions, ce qui le rend facile à installer. Son utilisation est tout aussi facile : on renseigne le mot de passe dans une variable d’environnement, on lance la commande magique et voilà. Ça, c’est pour la méthode manuelle.

Ce fonctionnement est du coup automatisable facilement. Pour ça il y a plusieurs méthodes, dans les plus évidentes, un script, un alias, ou une fonction. Le script est naturellement à utiliser via un dossier qui est inclus dans le PATH, l’alias ou la fonction seront chargés via le profile ou le bashrc, ou tout autre fichier chargé à l’ouverture du shell.

Pour ma part, j’ai opté pour la fonction, j’ai un fichier .bash_aliases où au final je colle toute sorte de bordel et pas seulement des alias, et vous allez voir que c’est diablement simple :

La beauté du truc, c’est que c’est ça tient compte du fichier de configuration que j’avais présenté il y a déjà deux ans maintenant et qui m’avait d’ailleurs resservi pour l’installation de mon rebond perso. Il sera donc facile de l’utiliser si vous avez également une ou deux brebis galeuses dans votre parc 🙂

4 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Arhuman
22/09/2017 16:18

Un password dans un fichier !?!
Pourquoi pas ssh-agent qui a le mérite de ne rien stocker sur disque ?

Cyril Bosselut
22/09/2017 16:30

Pas très sage de stocker les mots de passe de tes serveurs en clair. Une solution plus élégante serait de les coder via gpg et de procéder au décodage dans tes fonctions. Du coups tu te retrouves avec un comportement similaire à celui avec une clé privée c.a.d un master password. Tu peux également stocker les mots de passe encodés dans des fichiers séparés ou une bdd pour éviter que bash prenne moins de place en mémoire. En tout cas c’est une bonne idée qui démontre encore la puissance du shell 😉

CALAS
CALAS
29/12/2018 19:25

Bonjour et merci d’avoir renseigné ceci, je ne connaissais pas !!! super !!!
Je travaille principalement en LINUX/MAGEIA et LINUX/UBUNTU !!!
Merci à tous !!
Gérard

ricemo
ricemo
31/07/2019 09:29

Super utile pour du labo , on gagne beaucoup de temps.
Merci pour l’astuce