Mit ‚erwarten‘, um automatisch in Passwort senden [Duplikat]
Frage
Diese Frage bereits eine Antwort hier:
Ich versuche, eine Datei von meinem Remote-Server auf meinem lokalen zu kopieren. Hier ist mein Skript, um es auszuführen, unter Verwendung von ‚erwarten‘ automaticlally in Passwort senden
scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"
Wenn ich dies ausführen, fordert es nach wie vor für „Passwort“, was falsch ist?
Lösung
Von dem, was Sie versuchen, es zu tun, klingt wie Sie besser dran sein könnten ssh mit einem öffentlichen und privaten Schlüsseln. Man könnte Google für ssh-keygen Tutorial zu beginnen.
Andere Tipps
Während ich mit Sam und nik, die Antwort auf die Fragen einig sind, ist, dass Sie nicht das „Hit enter“:
send "mypassword\r"
Das erwartet Skript macht den Job (dank 'zedwood' )
#!/usr/bin/expect -f
set filename [lindex $argv 0]
set timeout -1
spawn scp $filename myusername@192.168.1.123:/home/myusername/
set pass "mypassword"
expect {
password: {send "$pass\r" ; exp_continue}
eof exit
}
bitte lassen Sie nicht einmal solche Skripte um, dass von jemandem abgeholt werden anders und anderswo verwendet .... versuchen Sie public-Key-Authentifizierung ist, ist es zu Setup sehr einfach.