通过 SFTP 一行 CLI 命令下载文件,密码包含特殊字符(无 ssh 密钥)

通过 SFTP 一行 CLI 命令下载文件,密码包含特殊字符(无 ssh 密钥)

我有一台 Synology,需要从 SFTP 服务器下载并存档文件。

我以前在使用 FTP 协议时使用 WGET,但文件所有者将协议更改为 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:我无法在SFTP服务器上安装ssh密钥。它由另一个实体拥有,他们不会为我这样做。

更新:

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

这似乎有效。试图让下载工作。

LS由于某种原因,命令显示此输出:

`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...]

相关内容