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