2016-07-08 36 views
5

Ich habe Setup lftp auf Ubuntu-Server und ich versuche zu einer IIS-FTP zu verbinden. Auf IIS ist es mit einem selbstsignierten Zertifikat konfiguriert und mit WinSCP verbindet es Ok mit Explicit Option von SSL. Aber mit lftp Befehl obwohl es verbindet, wenn ich Befehl eingeben cat files oder get [filename] Ich erhalte den Fehler 534 protection level negotiation failedkann keine Verbindung lftp zu IIS FTP mit SSL

Befehl wie cd [foldername] ok funktioniert. Ich kann nicht bekommen, was falsch ist. Benötigt lftp eine spezielle Option für diesen Fall?

Antwort

4

Nach dem Experimentieren mit lftp posten ich die Lösung mit einem Bash-Skript. So sind die Bash-Skript-Datei Inhalt

#!/bin/bash 
USER='username' 
PASS='password' 
HOST='ftp.mydomain.com' 
LOCAL_BACKUP_DIR='/backups' 
REMOTE_DIR='/backupfiles' 

lftp -u $USER,$PASS $HOST <<EOF 
set ftp:ssl-protect-data true 
set ftp:ssl-force true 
set ssl:verify-certificate no 
mirror -R -e "$LOCAL_BACKUP_DIR" "$REMOTE_DIR" 
quit 
EOF 

wäre Wo mit den entsprechenden Parametern Ihres FTP-Host den ersten Teil zu ändern, dieses Skript wird ein Spiegel aller Dateien im lokalen Verzeichnis auf dem entfernten eine nehmen.

Da der Remote-Host ein Windows IIS-FTP-Server ist, für den ein selbstsigniertes Zertifikat konfiguriert wurde, muss der Befehl set ssl:verify-certificate no im Skript notiert werden. Auch wenn der IIS/FTP-Benutzer in der Form von HOST | USER, z.B. ftp.mydomain.com | Benutzername, aus irgendeinem Grund, wenn dies in lftp USER-Parameter festgelegt ist, schlägt die Authentifizierung fehl. Sie müssen den HOST-Namen weglassen und nur den Benutzernamen einstellen ... und auf diese Weise verbindet er sich erfolgreich.