我有一个具有 FTPS 访问权限的共享托管服务器,我可以使用以下配置通过 Filezilla 连接它:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<FileZilla3>
<Servers>
<Server>
<Host>ftp.idrissi.co</Host>
<Port>21</Port>
<Protocol>4</Protocol>
<Type>0</Type>
<User>[email protected]</User>
<Logontype>2</Logontype>
<TimezoneOffset>0</TimezoneOffset>
<PasvMode>MODE_DEFAULT</PasvMode>
<MaximumMultipleConnections>0</MaximumMultipleConnections>
<EncodingType>Auto</EncodingType>
<BypassProxy>0</BypassProxy>
<Name>ftp.idrissi.co</Name>
<Comments />
<LocalDir />
<RemoteDir />
<SyncBrowsing>0</SyncBrowsing>ftp.idrissi.co
</Server>
</Servers>
</FileZilla3>
使用ncftp
更简单,我只需使用以下命令。ncftp -u [email protected] -P 21 ftp://ftp.idrissi.co
但是,当我尝试使用lftp
工具失败。对于lftp
,我使用以下配置:
1d [fauve:~/lftptest] % openssl s_client -starttls ftp -crlf -connect ftp.idrissi.co:21 > ftp-idrissi-temp.cert
1d [fauve:~/lftptest] 130 % cat ftp-idrissi-temp.cert | pcregrep -M '\-----BEGIN CERTIFICATE-----(.*\n)*.*-----END CERTIFICATE-----' > ftp-idrissi.cert
1d [fauve:~/lftptest] % vim ftp-idrissi.cert
1d [fauve:~/lftptest] % cat lftp-script
set ftps:initial-prot P
set ftp:ssl-force true
set ftp:ssl-protect-data true
set ssl:cert-file ./ftp-idrissi.cert
ls
1d [fauve:~/lftptest] % lftp -e "`cat lftp-script| sed 's/\n/; /'`" -p 21 -u [email protected] ftps://ftp.idrissi.co
ls: Erreur fatale: gnutls_handshake: An unexpected TLS packet was received.
1d [fauve:~/lftptest] 1 % lftp -e "`cat lftp-script| sed 's/\n/; /'`" -p 21 -u [email protected] ftp://ftp.idrissi.co
ls: Erreur fatale: Certificate verification: certificate common name doesn't match requested host name « ftp.idrissi.co »
我尝试了很多变体,lftp-script
但它不起作用。我不明白 Fillezilla 如何使用极简配置来做到这一点。那么,如何连接到我的 FTP 帐户呢?
答案1
终于,我明白了。
问题通过 解决set ssl:check-hostname false
。