Centos

為什麼 .ssh 目錄權限需要為 700 才能實現無密碼 ssh

  • May 8, 2021

我正在按照此處的步驟進行無密碼的 SSH

為了從 userA@hostA 登錄到 userB@hostB,~/.ssh/authorized_keysat hostB 需要包含 userA@hostA 的公鑰。

當我在登錄 userB@hostB 時第一次創建 .ssh/ 時,它的權限是771 或 drwxrwxr-x。在此權限狀態下,我無法在沒有密碼的情況下從 userA@hostA ssh 到 userB@hostB。

但是當我chmod 700 .ssh在 userB@hostB 上時,我可以很高興地在沒有密碼的情況下進行 SSH。

有人可以向我解釋為什麼通過提供不那麼嚴格的權限,無法實現無密碼 SSH 嗎?

為了保護您,否則係統上的其他使用者可能會將他自己的密鑰添加到您的authorized_keys文件中並輕鬆冒充您。

沒有要求權限必須是700,除了所有者之外的任何人都不能寫它們。它必須由您自己或根擁有。

只有當上述內容適用於從文件系統根目錄到文件的整個路徑時,它才是安全的authorized_keys

預設情況下,某些發行版將文件和目錄創建為組可寫(只有您自己在組中)。但sshd不檢查誰在組中,authorized_keys如果文件或目錄是組可寫的,它只是拒絕使用。

我不知道創建預設可寫的文件和目錄組的任何充分理由。我從未見過將其更改為僅對所有者可寫而引起的問題。

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