Судя по комментариям, файл записывается на диск правильно (это моя интерпретация).
WinSCP используется для передачи файла с компьютера (Linux / Unix) на компьютер с Windows. Режим передачи, используемый в процессе передачи, может привести к тому, что WinSCP преобразует все окончания строк в стиле Unix в окончания строк в стиле Windows, или наоборот, в зависимости от того, откуда произошла передача. Это происходит, когда для передачи файла используется текстовый режим или когда WinSCP разрешено определять, следует ли использовать текстовый или двоичный режим для передачи файла. Возможно, вы установили его в режим по умолчанию, поэтому принудительно передайте файл в двоичном формате; если это не сработало, вам нужно будет продолжить расследование.
Если WinSCP, кажется, является причиной этой проблемы, вы можете подтвердить это, просмотрев двоичное содержимое файлов на обеих платформах. Вы можете использовать xxd в Linux / Unix . В Windows одна из утилит, перечисленных в , поможет в этом вопросе .
Вы также можете использовать любые другие протоколы копирования файлов, такие как FTP, SFTP или даже использовать NFS или Samba для передачи файлов, и установить WinSCP в качестве причины.