Ersetzen Sie FTP durch SFTP, um Dateien zu übertragen - NUR PSFTP.EXE

1

Momentan bin ich FTP'ing Datei in eine Unix-Box von a windows Server. Ich möchte den folgenden Abschnitt des Skripts ändern und den FTP-Prozess migrieren sftp.

@echo off
echo user %user%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put %filetobeuploaded% %filepath%%File%>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %host%
del ftpcmd.dat
:END

ich habe PSFTP.EXE installiert in meinem Windows-Verzeichnis. Kann ich die Dateien mit SFTP versenden?

Wie kann ich die Leitung ersetzen? ftp -n -s:ftpcmd.dat %host% SFTP sein. Ich verstehe, dass Sie so etwas tun können ....

CALL PSFTP.EXE [email protected] ....

Wenn jemandem bekannt ist, können Sie mir bitte dabei helfen. Welche Argumente würde ich geben. user, pw, remotedir, host-details werden in einer eigenschaftsdatei gespeichert. Ich suche Schlüssel statt Passwort. Können Sie das vorhandene Argument ftpcmd.dat an psftp übergeben?

M06H
quelle
Bitte beachten Sie, dass SFTP NICHT FTP + SSL ist. Das nennt man FTPS. SFTP ist ein auf SSH basierendes Protokoll, mit dem Sie auf einen SSH-Server hochladen können, jedoch keinen FTP-Server. Wenn Sie auf einen FTP-Server hochladen möchten, schauen Sie in FTPS. Informationen zu den Unterschieden finden Sie hier: superuser.com/questions/677966/ftps-versus-sftp-versus-scp/…
Frank Thomas
Ich denke, was ich zu fragen versuche, ist, wie ich die meisten der oben für ftp geschriebenen Skripte aufrechterhalte und eine kleine Änderung vornehme, um es als sftp mit psftp.exe zu senden.
M06H
Hast du es versucht psftp -l %user% -pw %password% -b sftpcmd.dat %host% wo "sftpcmd.dat" enthält put %filetobeuploaded% %filepath%%FILE% in einer Zeile und quit übereinander? Der größte Unterschied scheint hier zu sein, dass, wie normalerweise bei ssh-orientierten Clients, der Benutzername beim Aufruf des Befehls angegeben werden muss und nicht wie bei herkömmlichem FTP nachträglich angegeben wird.
0xDAFACADE

Antworten:

1

Sie können auch WinSCP verwenden. Es unterstützt sowohl SFTP als auch Scripting.

Siehe die Anleitung zum Konvertieren eines Windows-FTP-Skripts in ein WinSCP-SFTP-Skript .

Das Skript wird wie folgt aussehen:

open sftp://%user%:%password%@%host%
put -transfer=binary %filetobeuploaded% %filepath%%File%
exit

Sie können das Skript wie ausführen (falls gespeichert in) script.txt ):

winscp.com /script=script.txt

Beachten Sie das (im Gegensatz zum ftp.exe ), Umgebungsvariablen werden auch im WinSCP-Skript aufgelöst.

Wenn Sie eine private Schlüsseldatei verwenden möchten, verwenden Sie Folgendes:

open sftp://%user%@%host% -privatekey=path\key.ppk

(Ich bin der Autor von WinSCP)

Martin Prikryl
quelle