透過 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...]

相關內容