我有一台 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...]