При использовании ssh2_scp_send на сервер приходят обрезанные в конце файлы. Это хорошо заметно на примере текстовых и картинок (просто другие файлы могут не открыться вообще). Проблема заключается в том, что вы не закрываете сеанс SSH. Таким образом, внутренние буферы не очищаются, и файлы полностью не записываются на диск.
Пример кода, в котором возникает проблема:
Проблема возникает не всегда, возможно, зависит от ОС, версии библиотек, настроек SSH.
Вот обходной путь - просто закройте сеанс с помощью удаленного выполнения команды exit:
Если же это не помогло, можно использовать альтернативное подключение, используя fopen: