我在Ubuntu服务器上设置了lftp,并且试图连接到IIS FTP。在IIS上,它配置有自签名证书,并使用WinSCP将Ok与SSL的Explicit选项连接起来。但是使用lftp
命令虽然可以连接,但是当我输入cat files
或get [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 |用户名,由于某种原因(如果在lftp USER参数中设置了此设置),验证将失败。您必须省略主机名,仅设置用户名...这样,它就可以成功连接。关于ubuntu - 无法使用SSL将lftp连接到IIS FTP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38265530/