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