Centos
為什麼 .ssh 目錄權限需要為 700 才能實現無密碼 ssh
我正在按照此處的步驟進行無密碼的 SSH
為了從 userA@hostA 登錄到 userB@hostB,
~/.ssh/authorized_keys
at 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
如果文件或目錄是組可寫的,它只是拒絕使用。我不知道創建預設可寫的文件和目錄組的任何充分理由。我從未見過將其更改為僅對所有者可寫而引起的問題。