.png)
У меня есть 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...]