我在Ubuntu服务器上设置了lftp,我正在尝试连接到IIS FTP。在IIS上,它配置了自签名证书,并使用WinSCP连接Ok和Explicit选项SSL。但是在连接时使用lftp
命令,当我输入命令cat files
或get [filename]
时,我收到错误534 protection level negotiation failed
cd [foldername]
之类的命令可以正常工作。
我无法得到错误。 lftp是否需要为该案例设置一些特定的选项?
答案 0 :(得分:8)
在尝试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参数中设置,则验证失败。您必须省略主机名称,只需设置用户名...这样就可以成功连接。
答案 1 :(得分:-1)
感谢您发布解决方案。今天,当尝试进入程序时,我们看到了相同的错误。我使用了一个命令行,通过使用work来使我们登录并允许该命令起作用:
lftp -u $USER,$PASS -e "set ftp:ssl-protect-data true set ftp:ssl-force true set ssl:verify-certificate no" $HOST