У меня есть общий сервер с доступом по 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
.