2016-07-08 3 views
5

У меня есть установка lftp на сервере Ubuntu, и я пытаюсь подключиться к FTP IIS. В IIS он настроен с самоподписанным сертификатом и с помощью WinSCP подключается Ok с явным вариантом SSL. Но с помощью lftp команды, хотя он соединяется, когда я ввожу команду cat files или get [filename] Я получаю ошибку 534 protection level negotiation failedНе удается подключить lftp к FTP IIS с помощью SSL

Команда как cd [foldername] работает нормально. Я не могу понять, что не так. Требуется ли для lftp определенная опция для этого случая?

ответ

4

После эксперимента с lftp Я отправляю решение, используя скрипт bash. Таким образом, содержимое файла Баш скрипт будет

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

Где менять первую часть с соответствующими параметрами вашего FTP хоста, этот сценарий будет принимать зеркало всех файлов в локальном каталоге на удалённой.

Поскольку удаленный хост - это FTP-сервер Windows IIS с настроенным самозаверяющим сертификатом, я должен отметить необходимость команды set ssl:verify-certificate no в скрипте. Кроме того, хотя пользователь IIS/FTP должен быть введен в форме HOST | USER, например. ftp.mydomain.com | username, по какой-либо причине, если это установлено в параметре USER lftp, аутентификация завершается с ошибкой. Вы должны опустить имя HOST и просто установить имя пользователя ... и таким образом он успешно соединяется.