web-dev-qa-db-fra.com

Exécuter ssh avec authentification par mot de passe via l'invite de commande Windows

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>

 enter image description here

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. 

83
Balachandar

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.

11
Greg Inozemtsev

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).

160
Anish Bhatt

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
24
Illarion Kovalchuk

Solution Windows

  1. Installer PuTTY
  2. Appuyez sur Windows-Key + R 
  3. Entrez PuTTY.exe -ssh [username]@[hostname] -pw [password]
0
optimiertes

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
0
Owain Esau