Назад | Перейти на главную страницу

Содержимое файла изменяется, отправляется по ftp

Я использую openssl для шифрования своих резервных копий перед их отправкой на ftp-сервер, где я их храню.

Сначала, когда я пытался расшифровать файлы, я получал такую ​​ошибку:

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:

Я слежу это шаги для шифрования.

Я думал, что проблема в шифровании, но проверка md5sum файла показала мне, что файл на сервере был изменен на тот, который я скачал с ftp-сервера. Пример:

У меня есть файл enc.key.txt, содержащий парольную фразу для расшифровки резервной копии:

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

И шестнадцатеричный дамп файла enc.key.txt, однажды загруженный на мой компьютер, отличается на одно значение в этой строке:

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

Я отредактировал значение с помощью шестнадцатеричного редактора, а затем мне удалось расшифровать файл, но я не знаю, почему файл изменяется.

Я отправляю резервные копии на ftp-сервер с помощью ncftp следующим образом:

### 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

Не могли бы вы помочь мне? заранее спасибо

Символ 0a - это перевод строки, а 0d - это возврат каретки. В «Режиме ASCII» их можно изменить при передаче по FTP между разными операционными системами. Например, в исходном файле Unix / Linux с окончанием строки LF, загруженном на сайт Windows SharePoint, каждый LF будет изменен на CRLF. Некоторые реализации могут просто изменить LF на CR. Убедитесь, что вы указываете binary режим в ваших переводах.

Документация для ncftp указывает, что по умолчанию используется двоичный режим, но принимает binary как и большинство ftp-клиентов. Я бы вставил эту команду перед передачей любых файлов и посмотрел, поможет ли это. Если это так, это означает, что что-то каким-то образом отменяет значение по умолчанию.

В этом случае проблема явно не в ncftp но Filezilla на другом конце. По умолчанию установлено «Авто», что означает, что файл с .txt расширение - это ASS | U | MEd для ASCII, и это мешает завершению строки.