2016-07-08 118 views
5

Ho installato lftp sul server Ubuntu e sto provando a connettermi a un FTP IIS. Su IIS è configurato con un certificato autofirmato e utilizzando WinSCP collega Ok con l'opzione Explicit di SSL. Ma usando lftp comando anche se si collega, quando entro comando cat files o get [filename] sto ottenendo l'errore 534 protection level negotiation failedImpossibile connettere lftp a IIS FTP con SSL

comando come cd [foldername] funziona bene. Non riesco a capire cosa c'è che non va. Lftp richiede qualche opzione specifica impostata per quel caso?

risposta

4

Dopo aver sperimentato con lftp sto postando la soluzione utilizzando uno script bash. Quindi il contenuto del file di script bash sarebbero

#!/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 

Dove cambiare la prima parte con i parametri appropriati del vostro host FTP, questo script avrà uno specchio di tutti i file nella directory locale a quello remoto.

Poiché l'host remoto è un server FTP IIS di Windows con un certificato autofirmato configurato, devo notare la necessità del comando set ssl:verify-certificate no nello script. Anche se l'utente IIS/FTP deve essere inserito sotto forma di HOST | USER, ad es. ftp.mydomain.com | username, per qualche motivo se questo è impostato nel parametro USER lftp l'autenticazione fallisce. Devi omettere il nome HOST e impostare solo il nome utente ... e in questo modo si connette con successo.