Potřebuji provést ssh z příkazového řádku Windows zadáním hesla neinteraktivním způsobem. Mohl bych implementovat autentizaci založenou na klíči a dokázat provést příkazy ssh stejně jako
ssh <user>@<Host> <command>
Existují nějaké příkazy
ssh <user>@<Host> -P <password> <command>
Nevím, jestli je to možné. Nicméně, tam může být nějaká práce kolem pro stejné. Hodit mi nějaké nápady, jak toho dosáhnout.
PlTink PuTTY má argument příkazového řádku pro heslo . Některé další návrhy byly vytvořeny v odpovědi na tuto otázku : pomocí Expect (který je k dispozici pro Windows), nebo napsáním launcheru v Pythonu s Paramiko.
Nástroj sshpass je určen právě pro tento účel. Nejprve nainstalujte sshpass zadáním tohoto příkazu:
Sudo apt-get install sshpass
Potom předejte svůj příkaz ssh/scp příkazem
sshpass -p '<password>' <ssh/scp command>
Tento program je nejjednodušší nainstalovat při použití Linuxu.
Uživatel by měl místo toho zvážit použití bezpečnějšího ověřování veřejného klíče SSH (s příkazem ssh
).
A co tento scénář očekávání?
#!/usr/bin/expect -f
spawn ssh [email protected]
expect -exact "[email protected]'s password: "
send -- "mypassword\r"
interact
Windows Řešení
Windows-Key + R
PuTTY.exe -ssh [username]@[hostname] -pw [password]
Řešení PowerShell
Použití 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