12

我已经在 Ubuntu 服务器上设置了 lftp,我正在尝试连接到 IIS FTP。在 IIS 上,它配置了自签名证书,并使用 WinSCP 将 Ok 与 SSL 的显式选项连接。但是使用lftp命令虽然它连接,当我输入命令cat filesget [filename]我收到错误534 protection level negotiation failed

命令之类的cd [foldername]工作正常。我不明白出了什么问题。lftp 是否需要为这种情况设置一些特定的选项?

4

2 回答 2

20

在试验之后,lftp我正在使用 bash 脚本发布解决方案。所以 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 主机的适当参数更改第一部分的情况下,此脚本会将本地目录中的所有文件镜像到远程目录。

由于远程主机是配置了自签名证书的 Windows IIS FTP 服务器,因此我必须注意set ssl:verify-certificate no脚本中对命令的需要。此外,尽管 IIS/FTP 用户必须以 HOST|USER 的形式输入,例如 ftp.mydomain.com|username,但由于某种原因,如果在 lftp USER 参数中设置了此选项,则身份验证失败。您必须省略主机名称并仅设置用户名......这样它就可以成功连接。

于 2016-07-12T13:46:09.880 回答
-1

感谢您发布您的解决方案。今天在尝试获取程序时,我们看到了同样的错误。使用我发现的单个命令行来让我们登录并允许开始工作:

lftp -u $USER,$PASS -e "set ftp:ssl-protect-data true set ftp:ssl-force true set ssl:verify-certificate no" $HOST
于 2019-02-19T21:39:23.800 回答