為什麼0644
ie-rw-r--r--
對 SSH 金鑰過於開放?另外,我在.ssh
目錄 ( 0700
) 或主目錄 ( 0731
)上找不到任何錯誤的權限。
順便說一句,我在通過測試密鑰的釋義時收到此錯誤ssh-keygen -y -f my_key.pub
此致
答案1
您可能在錯誤的檔案上執行 ssh-keygen。ssh-keygen -y
運行在私人的密鑰檔。 “.pub”文件通常包含民眾鑰匙。您可能有一個名為 的文件my_key
,沒有任何副檔名,它的模式應該是 0600。
為了直接回答您的問題,SSH 金鑰通常用於允許無需密碼即可連接到遠端伺服器。擁有私鑰將允許某人在任何接受該金鑰的系統上登入您的帳戶。 ssh-keygen 和其他 ssh 實用程式要求私鑰檔案具有受限權限,因為這些檔案很敏感且需要保持安全。
答案2
您需要運行的唯一命令是chmod 600 ~/.ssh/id_rsa
.就是這樣。
這會更改文件的權限,以便所有者(您)可以讀取和寫入該文件,這將刪除您收到的錯誤訊息。
答案3
0644
不應該對公鑰太開放,但對您的私鑰來說太開放。
你的私鑰應該有權限,0600
而你的公鑰也有權限0644
。
順便說一句,您還應該注意.ssh
資料夾的權限。它應該具有 權限0700
,以便只有您(所有者)可以控制該資料夾。
對於您的主目錄,不應該向群組和其他人授予寫入權限。
運行chmod go-w /home/username
應該可以解決這個問題。
答案4
上面的答案是有效的,但在運行任何chmod
修復權限之前,只需確保您的IdentityFile
確實~/.ssh/config
引用了您的私鑰。新手可能會誤解這一點並引用公鑰(帶有.pub
擴展名),從而導致相同的錯誤(因為公鑰檔案權限對於私鑰來說過於開放)。