Aller au contenu | Aller au menu | Aller à la recherche


Windows Git Bash sshpass

Vous n'avez pas su/voulu mettre en place l'authentification par clé RSA pour SSH (Secure SHell), vous pouvez alternativement injecter le mot de passe avec la commande sshpass.

Sous Linux, côté client, on installerait le package sshpass.

Mais la commande sshpass n'étant nativement pas présente sous git bash, on va rajouter le binaire sshpass à notre environnement :

Une fois Git Bash for Windows installé, télécharger la dernière version de SSHpass (sshpass-1.06-1-x86_64.pkg.tar.xz) pour Windows depuis le site de MSYS2, plus précisément depuis leur dépôt : http://repo.msys2.org/msys/x86_64/

Décompresser l'archive .tar.xz téléchargée avec 7-Zip, et copier le fichier sshpass.exe présent dans le répertoire usr\bin\ de l’archive vers le répertoire C:\Program Files\Git\mingw64\bin

La commande est maintenant disponible dans Git Bash :

ryzen@RYZEN MINGW64 ~
$ sshpass
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -P prompt     Which string should sshpass search for to detect a password prompt
   -v            Be verbose about what you're doing
   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used

Ensuite, comme l'indique How to Execute Linux Commands on Remote System over SSH - Limitation of public-private key authentication

Méthode 1 : Mot de passe en tant qu'argument

Nous pouvons fournir un mot de passe comme argument en utilisant l'option –p :

$ sshpass -p 'mon-mot-de-passe' ssh -p 22 monuser@150.80.40.10

Méthode 2 : Mot de passe depuis un fichier

sshpass peut lire le mot de passe depuis un fichier normal en utilisant l'option -f :

$ echo "mon-mot-de-passe" > fichier-password.txt
$ sshpass -f fichier-password.txt ssh -p 22 monuser@150.80.40.10

Méthode 3 : Mot de passe depuis une variable d’environnement

Nous pouvons fournir un mot de passe à partir d'une variable d'environnement en utilisant l'option -e :

$ export SSHPASS="mon-mot-de-passe"
$ sshpass -e ssh -p 22 monuser@150.80.40.10

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet