Ich versuche, eine Verbindung zu einem Server herzustellen, auf dem die doppelte Authentifizierung (publickey,password)
aktiviert ist. Ich verwende sshpass
ein Passwort, um das Skript zu automatisieren, aber wenn ich eine Batchdatei mit SFTP habe, schlägt die Verbindung fehl, ohne dass die Batchdateiverbindung erfolgreich ist
export SSHPASS=helloworld (sshpass -e sftp -b batfile.txt -o 'PasswordAuthentication=yes' \ -o 'PreferredAuthentications=publickey,password' -o 'StrictHostKeyChecking=no' user@hostname)
Fehler:
Permission denied (password). Couldn't read packet: Connection reset by peer
Die Verbindung ist ohne Batchdatei erfolgreich
(sshpass -e sftp -o 'PasswordAuthentication=yes' \ -o 'PreferredAuthentications=publickey,password' -o 'StrictHostKeyChecking=no' user@hostname)
Ich habe versucht, das Passwort in einer Batchdatei anzugeben, aber ohne Erfolg.
Ist es möglich, was ich versuche, sshpass
zusammen mit zu erreichen batchfile
, wenn ja, kann mir bitte jemand dabei helfen
Batchdatei:
echo "Hey, I'm from Inside"
!echo "Hey, I'm from Outside"
Antwort1
Dies -b
verhindert die interaktive Authentifizierung (was Sie durch zu simulieren versuchen sshpass
).
Stattdessen müssen Sie die Befehle an sshpass
stdin übergeben.
sshpass -e sftp -o 'PasswordAuthentication=yes' \
-o 'PreferredAuthentications=publickey,password' user@hostname < batfile.txt
Wie hier:
Wie fügt man den Befehl „sshpass“ in ein Bash-Skript ein?
Verwenden Sie niemals StrictHostKeyChecking=no
, es sei denn, die Sicherheit ist Ihnen egal.