Есть несколько способов справиться с этим.
Во-первых, многие версии curl
действительно поддерживают SFTP;это вопрос использования соответствующей версии.Debian и Ubuntu предоставляют curl
двоичные файлы, которые можно использовать для загрузки с использованием SFTP, либо с именем пользователя и паролем, либо с ключом.
Во-вторых, вы можете использовать такую программу, как lftp
, которая может быть написана с помощью сценариев и можеттакже может использоваться для загрузки на удаленный сервер с использованием SFTP, либо с именем пользователя и паролем, либо с ключом.Этот двоичный файл также доступен в Debian и Ubuntu.
В-третьих, вы можете использовать программу командной строки sftp
из OpenSSH.Однако, поскольку OpenSSH всегда запрашивает имя пользователя и пароль для /dev/tty
, не позволяя использовать его в сценарии, вам необходимо либо использовать для этой цели ключи SSH, либо использовать что-то вроде expect
, которое может сценарий взаимодействия спрограмма sftp
и TTY для ввода данных.
Если вы выполняете сборку на Travis в Linux и не предоставляете надлежащие двоичные файлы, вы всегда можете выполнить сборку в подходящем Docker.контейнер вместо самой системы Travis.