Загрузите файл через SFTP с помощью однострочной команды CLI с паролем, содержащим специальный символ (без ключа ssh)

Загрузите файл через SFTP с помощью однострочной команды CLI с паролем, содержащим специальный символ (без ключа ssh)

У меня есть Synology, которому нужно загрузить и заархивировать файл с сервера SFTP.

Раньше я использовал WGET, когда использовался протокол FTP, но владелец файла изменил протокол на SFTP.

wget -m ftp://username:password@host/* -P /volume1/local/folder

Так что теперь я не могу использовать WGET и мне нужно использовать что-то другое.

Из прочитанного я могу использоватьsftpилифтпкоманды.

Однострочники для этих целей не работают, так как в пароле есть символ @.

Я пытался:

sftp --password="password" "username"@"host":/* /volume1/local/folder

Но sftp выдает:

unknown option -- -

Я тоже не могу установитьsshpass, потому что он перестанет работать, как только я получу обновление на устройстве Synology.

Есть ли способ сделать это? Мне следует сделать это через скрипт bash?

PS: Я не могу установить ssh-ключ на SFTP-сервер. Он принадлежит другой организации, и они не будут делать этого для меня.

ОБНОВЛЯТЬ:

lftp -u 'username','password@' 'host' -p 22 "ls; bye"

Кажется, это работает. Пытаюсь заставить загрузку работать.

TheлсКоманда по какой-то причине показывает такой вывод:

`ls' at 0 [FEAT negotiation...]

ОБНОВЛЕНИЕ: Небольшой прогресс, но недостаточный:

lftp -u 'username','password@' 'host' -p 22 -e "set ftp:use-feat false; set ssl:verify-certificate no; get FILE.ZIP; bye"

Кажется, что соединение устанавливается, но зависает на согласовании TLS:

`FILE.ZIP' at 0 [TLS negotiation...]

Связанный контент