cURL “leitura de resposta falhou” na transferência de arquivos FTPS

0

Estou tentando baixar um diretório e seus arquivos usando cURL via FTPS.

O comando a seguir me deixa muito perto - eu fiz o login com sucesso e defini o canal de comando clear, mas ele falhou com curl: (56) response reading failed

curl -v --ftp-ssl --data-ascii --ftp-pasv --no-epsv --user myusername:XXXXXXXX ftp://ftp.server.com:21 -Q "CCC"
* About to connect() to ftp.server.com port 21 (#0)*
Trying 55.55.55.55... connected
< 220-This System Is For Authorized Users Only.
< 220-
< 220 Secure FTP Server - SecureTransport ready.
> AUTH SSL
< 234 SSLv23/TLSv1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES256-SHA
* Server certificate:
*        subject: DC=local; DC=ftp_host_company; DC=us; OU=Accounts; OU=SSL Accounts; CN=ftp.server.com
*        start date: 2012-02-14 16:29:37 GMT
*        expire date: 2015-02-14 16:59:37 GMT
*        common name: ftp.server.com (matched)
*        issuer: DC=local; DC=ftp_host_company; CN=Configuration; CN=Services; CN=Public Key Services;  CN=AIA; CN=FTP_hosting_company Issuing CA 1
*        SSL certificate verify ok.
> USER myusername
< 331 Password required for myusername.
> PASS XXXXXXXX
< 230 Virtual user myusername logged in.
> PBSZ 0
< 200 PBSZ=0
> PROT P
< 200 PROT command successful
> PWD
< 257 "/" is current directory.
* Entry path is '/'
> CCC
< 200 command channel cleared.
> PASV
* Connect data stream passively
* SSLv3, TLS alert, Client hello (1):
* response reading failed
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
curl: (56) response reading failed

O host ftps especificamente disse que eu precisaria se conectar com FTPS com Clear Command Canal na porta 21 - tudo o que eu sinto falta?

    
por user35581 06.10.2014 / 19:13

1 resposta

1

O CCC é usado para fazer downgrade do canal de comando de SSL para texto simples, isto é, depois que a resposta bem sucedida ao CCC é recebida, ambos os lados devem fazer um SSL_shutdown no soquete. Assim, o curl deve lidar com essa semântica inerente do comando e não é suficiente deixar o curl apenas enviar este comando como faria com qualquer outro comando arbitrário. Em vez disso, você precisa usar a opção --ftp-ssl-ccc .

    
por 07.10.2014 / 09:39

Tags