Linux

在 *nix 伺服器上儲存多個 SFTP 憑據

  • January 16, 2018

我有一個 cron 作業需要將文件上傳到至少 2 個不同的 SFTP 伺服器的情況。我們只有登錄名,因此無法按照另一個答案中的建議使用 SSH 密鑰。所以舉個例子:

  • SFTP 伺服器 1

    • 一些使用者名
    • 一些密碼
  • SFTP 伺服器 2

    • 一些使用者名
    • 一些密碼

是否有一種標準、安全的方式來儲存 2 個或更多 SFTP 登錄的密碼,可以通過 shell 腳本訪問?

標準方法是將它們儲存在純文字文件中,並使用文件系統權限保護它們。這與可以讀取它們的帳戶的安全性以及隨著時間的推移保持這些權限的能力一樣好。

隨著不同的應用程序隨著時間的推移寫入文件或其目錄,鎖定的權限趨於放鬆。目錄 ACL 可以提供幫助,例如:

setfacl -m d:g::-,d:o:- /secret/dir

嘗試在目錄中寫入新文件時對組和其他強制執行空權限 - 例如,如果編輯器創建密碼文件的新副本,而不是更新原始文件。

如果您想改用 ssh 密鑰,您可以將秘密以明文形式儲存在另一台僅允許通過 ssh 密鑰登錄的主機上。您必須編寫腳本登錄該主機,讀取密碼文件,然後在 ssh 命令中使用它。這將很難可靠和安全地完成,但它可以工作。

您能想到的大多數選項最終都依賴於文件系統權限來保證其安全性。SSH: The Secure Shell的第 11 章討論了權衡。

引用自:https://serverfault.com/questions/892526