Laden Sie die Datei über einen einzeiligen SFTP-CLI-Befehl mit einem Passwort herunter, das Sonderzeichen enthält (kein SSH-Schlüssel).

Laden Sie die Datei über einen einzeiligen SFTP-CLI-Befehl mit einem Passwort herunter, das Sonderzeichen enthält (kein SSH-Schlüssel).

Ich habe eine Synology, die eine Datei vom SFTP-Server herunterladen und archivieren muss.

Früher habe ich WGET verwendet, als das FTP-Protokoll genutzt wurde, aber der Dateieigentümer hat das Protokoll auf SFTP geändert.

wget -m ftp://username:password@host/* -P /volume1/local/folder

Daher kann ich WGET jetzt nicht verwenden und muss etwas anderes verwenden.

Aus meiner Lektüre kann ich verwendensftpoderlftpBefehle.

Die Einzeiler hierfür funktionieren nicht, da das Passwort das Zeichen @ enthält.

Ich habe versucht:

sftp --password="password" "username"@"host":/* /volume1/local/folder

Aber sftp gibt Folgendes aus:

unknown option -- -

Ich kann auch nicht installierensshpass, weil es nicht mehr funktioniert, sobald ich ein Update auf der Synology-Maschine bekomme.

Gibt es eine Möglichkeit, dies zu tun? Sollte ich dies über ein Bash-Skript tun?

PS: Ich kann den SSH-Schlüssel nicht auf dem SFTP-Server installieren. Er gehört einer anderen Entität und diese wird das nicht für mich tun.

AKTUALISIEREN:

lftp -u 'username','password@' 'host' -p 22 "ls; bye"

Das scheint zu funktionieren. Ich versuche, den Download zum Laufen zu bringen.

DerlsDer Befehl zeigt aus irgendeinem Grund diese Ausgabe:

`ls' at 0 [FEAT negotiation...]

UPDATE: Ein bisschen Fortschritt, aber nicht genug:

lftp -u 'username','password@' 'host' -p 22 -e "set ftp:use-feat false; set ssl:verify-certificate no; get FILE.ZIP; bye"

Die Verbindung scheint herzustellen, bleibt aber bei der TLS-Aushandlung hängen:

`FILE.ZIP' at 0 [TLS negotiation...]

verwandte Informationen