Baixe o arquivo via comando CLI de uma linha SFTP com senha contendo caractere especial (sem chave ssh)

Baixe o arquivo via comando CLI de uma linha SFTP com senha contendo caractere especial (sem chave ssh)

Eu tenho um Synology que precisa baixar e arquivar um arquivo do servidor SFTP.

Eu costumava usar o WGET quando o protocolo FTP estava sendo usado, mas o proprietário do arquivo alterou o protocolo para SFTP.

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

Então agora não posso usar o WGET e preciso usar outra coisa.

Da minha leitura posso usarsftpoulftpcomandos.

Os liners para aqueles não funcionam porque a senha contém o caractere @.

Eu tentei:

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

Mas, o sftp está lançando:

unknown option -- -

Também não consigo instalarsshpass, porque ele irá parar de funcionar assim que eu receber uma atualização na máquina Synology.

Existe uma maneira de fazer isso? Devo fazer isso através de um script bash?

PS: Não consigo instalar a chave ssh no servidor SFTP. É propriedade de outra entidade e eles não farão isso por mim.

ATUALIZAR:

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

Isso parece estar funcionando. Tentando fazer o download funcionar.

Oeucomando está mostrando esta saída por algum motivo:

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

ATUALIZAÇÃO: Um pouco de progresso, mas não o suficiente:

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

Parece estar conectando, mas fica preso na negociação TLS:

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

informação relacionada