SFTP-Doppelauthentifizierung mit Batchdatei

SFTP-Doppelauthentifizierung mit Batchdatei

Ich versuche, eine Verbindung zu einem Server herzustellen, auf dem die doppelte Authentifizierung (publickey,password)aktiviert ist. Ich verwende sshpassein 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, sshpasszusammen 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 -bverhindert die interaktive Authentifizierung (was Sie durch zu simulieren versuchen sshpass).

Stattdessen müssen Sie die Befehle an sshpassstdin ü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.

verwandte Informationen