Tenho um servidor hospedado compartilhado com acesso FTPS e posso conectá-lo através do Filezilla com a seguinte configuração:
<?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>
Com ncftp
é mais simples, basta usar o seguinte comando .ncftp -u [email protected] -P 21 ftp://ftp.idrissi.co
Mas, quando tento acessar com olftp
ferramenta falha. Com lftp
, eu uso a seguinte configuração:
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 »
Eu tento muitas variações, lftp-script
mas não funciona. E não entendo como o Fillezilla conseguiu fazer isso com uma configuração minimalista. Então, como posso me conectar à minha conta FTP?
Responder1
Finalmente, entendi.
O problema é resolvido por set ssl:check-hostname false
.