it-swarm.com.de

So senden Sie das Kennwort mithilfe der SFTP-Batchdatei

Ich versuche, eine Datei von der SFTP-Site mit Batch-Skript herunterzuladen. Ich erhalte folgende Fehlermeldung:

Permission denied (publickey,password,keyboard-interactive).
Couldn't read packet: Connection reset by peer

Wenn Sie den Befehl ausführen:

sftp -b /home/batchfile.sftp <user>@<server ip>:<folder>

der batchfile.sftp enthält diese Daten:

password
lcd [local folder]
cd [sftp server folder]
get *
bye

Hinweis: Es funktioniert, wenn an der Eingabeaufforderung als ausgeführt wird

sftp <user>@<server ip>:<folder>

Ich brauche aber die Möglichkeit, das Passwort automatisch einzugeben.

29
judith

Sie möchten das Programm sshpass installieren. Dann:

sshpass -p YOUR_PASSWORD sftp -oBatchMode=no -b YOUR_COMMAND_FILE_PATH [email protected]

Offensichtlich ist es besser, die Authentifizierung mit einem öffentlichen Schlüssel einzurichten. Verwenden Sie dies nur, wenn dies aus irgendeinem Grund nicht möglich ist.

37
Joe Van Dyk

Wenn Sie einen Haufen von Befehlen generieren, die ausgeführt werden sollen, dann das Skript von einem Terminal aus aufrufen, können Sie Folgendes versuchen.

sftp [email protected] < /path/to/command/list

Sie werden dann aufgefordert, Ihr Passwort einzugeben (wie üblich), danach werden jedoch alle Befehle im Skript ausgeführt.

Dies ist offensichtlich keine vollständig automatisierte Option, die in einem cron-Job verwendet werden kann, sondern von einem Terminal aus.

16
Tigger

Ich empfehle Ihnen, SFTP mit der Option -v auszuführen. Es wird viel einfacher zu ergründen, was passiert.

In dem Handbuch heißt es eindeutig:

Das endgültige Verwendungsformat ermöglicht automatisierte Sitzungen mit der Option -b Möglichkeit. In solchen Fällen muss die nicht interaktive Authentifizierung konfiguriert werden Um zu vermeiden, dass zur Verbindungszeit ein Kennwort eingegeben werden muss, siehe sshd (8) und ssh-keygen (1).

Mit anderen Worten, Sie müssen eine öffentliche Authentifizierung einrichten. Dann können Sie ein Batch-Skript ausführen.

Es ist falsch, Ihr Passwort in Ihre Batch-Datei zu schreiben.

1
akond
PSFTP -b path/file_name.sftp [email protected]_server -hostkey 1e:52:b1... -pw password

der Inhalt der Datei ist:

lcd "path_file for send"

cd path_destination

mput file_name_to_send

quit

um den hostkey laufen zu lassen:

psftp  [email protected]_SERVER
0
user10558384

Sie erwähnen Batch-Dateien. Bin ich dann richtig, wenn Sie von einem Windows-System sprechen? In diesem Fall können Sie sshpass nicht verwenden, und Sie müssen zu einer anderen Option wechseln.

Zwei dieser Optionen, die diametral entgegengesetzten Philosophien folgen, sind:

  • psftp: Befehlszeilenprogramm, das Sie aus Ihren Batch-Skripts heraus aufrufen können. psftp ist Teil des PuTTY-Pakets. Sie finden es hier http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html 
  • Syncplify.me FTP-Skript: Ein skriptfähiger FTP/S- und SFTP-Client für Windows, mit dem Sie Ihr Kennwort in verschlüsselten "Profildateien" speichern können. Hier geht es zu http://www.syncplify.me/products/ftp-script/

In jedem Fall wird dringend empfohlen, vom Kennwort zur PKI-Authentifizierung zu wechseln.

0
FjodrSo