O conteúdo do arquivo está sendo modificado enviado pelo ftp

1

Estou usando o openssl para criptografar meus backups antes de enviá-los para um servidor FTP onde os armazeno.

Primeiro, quando tentei descriptografar os arquivos, recebi este erro:

openssl rsautl -decrypt -inkey ../key.server.pem -in enc.key.txt -out key.txt 
RSA operation error 139759177856680:error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02:rsa_pk1.c:190:
139759177856680:error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check     failed:rsa_eay.c:616:

Estou seguindo estas etapas para criptografar .

Eu achei que o problema era com a criptografia, mas checar o md5sum do arquivo me mostrou que o arquivo no servidor tinha mudado com o que eu baixei do servidor ftp. Um exemplo:

Eu tenho um arquivo chamado enc.key.txt que contém uma senha para descriptografar o backup:

$ hexdump enc.key.txt
//...
//...
0000100 16e3 c2e3 cecd 2afe eb8c 9617 8d58 *0dd0*
//...

E o hexdump do enc.key.txt, uma vez baixado para o meu computador, difere em um valor, nesta linha:

//...
0000100 16e3 c2e3 cecd 2afe eb8c 9617 8d58 *0ad0*
//...

Eu editei o valor com um editor hexadecimal e, em seguida, consegui descriptografar o arquivo, mas não sei por que o arquivo está sendo modificado.

Estou enviando os backups para o servidor ftp com o ncftp assim:

### Dump backup using FTP ###
#Start FTP backup using ncftp
ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF
mkdir $FTPD
mkdir $FTPD/$NOW
cd $FTPD/$NOW
put enc.key.txt
lcd $BACKUP
mput *
quit
EOF

Você poderia me ajudar? Agradecemos antecipadamente

    
por ElBaulP 23.07.2013 / 16:32

1 resposta

3

O caractere 0a é Feed de linha e 0d é Retorno de carro. No "Modo ASCII", as transferências FTP entre diferentes sistemas operacionais podem alterá-las. Por exemplo, um arquivo nativo do Unix / Linux com terminação de linha LF carregada em um site do Windows SharePoint terá cada LF alterado para CRLF. Algumas implementações podem simplesmente mudar as LFs para CRs. Verifique se você está especificando o modo binary em suas transferências.

A documentação para ncftp indica que o padrão é binário, mas aceita o comando binary como a maioria dos clientes ftp. Eu inseriria esse comando antes que qualquer arquivo fosse transferido e verificaria se isso ajuda. Se isso acontecer, significa que alguma coisa está de alguma forma substituindo o padrão.

Neste caso, o problema aparentemente não é ncftp , mas Filezilla na outra extremidade. O padrão é "Auto", o que significa que um arquivo com extensão .txt é ASS | U | MEd como ASCII, e isso estraga a terminação de linha.

    
por 23.07.2013 / 16:40