J'ai besoin d'exécuter ssh à partir de windows en ligne de commande en fournissant un mot de passe de manière non interactive. Je pouvais implémenter l'authentification par clé et capable d'exécuter les commandes ssh comme
ssh <user>@<Host> <command>
Y a-t-il des commandes comme
ssh <user>@<Host> -P <password> <command>
Je ne sais pas si c'est faisable. Cependant, il peut y avoir un travail autour de la même chose. Jetez-moi quelques idées pour accomplir la même chose.
Le lien de PuTTY a un argument de ligne de commande pour un mot de passe . D'autres suggestions ont été faites dans les réponses à cette question : en utilisant Expect (disponible pour Windows), ou en écrivant un programme de lancement en Python avec Paramiko.
L'utilitaire sshpass est conçu pour cela. Commencez par installer sshpass en tapant cette commande:
Sudo apt-get install sshpass
Puis ajoutez votre commande ssh/scp avec
sshpass -p '<password>' <ssh/scp command>
Ce programme est plus facile à installer avec Linux.
L'utilisateur devrait plutôt utiliser l'authentification par clé publique plus sécurisée de SSH (avec la commande ssh
).
Qu'en est-il de ce script attendu?
#!/usr/bin/expect -f
spawn ssh root@myhost
expect -exact "root@myhost's password: "
send -- "mypassword\r"
interact
Solution Windows
Windows-Key + R
PuTTY.exe -ssh [username]@[hostname] -pw [password]
Solution PowerShell
Utilisation de Posh-SSH:
New-SSHSession -ComputerName 0.0.0.0 -Credential $cred | Out-Null
Invoke-SSHCommand -SessionId 1 -Command "Nohup sleep 5 >> abs.log &" | Out-Null