无法使用 SSL 将 lftp 连接到 IIS FTP

Cannot connect lftp to IIS FTP with SSL

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

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

在试验 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 参数中设置,则身份验证失败。您必须省略主机名并仅设置用户名......这样它就可以成功连接。

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

lftp -u $USER,$PASS -e "set ftp:ssl-protect-data true set ftp:ssl-force true set ssl:verify-certificate no" $HOST