私鑰權限引起的bad permissions問題

問題描述:

在本地使用iTerm2客戶端通過私鑰連接linux服務器時,報出了以下錯誤:

Permissions 0644 for '/Users/.../.ssh/xxxxx' are too open.

It is required that your private key files are NOT accessible by others.

This private key will be ignored.

Load key "/Users/.../.ssh/xxxxx": bad permissions

私鑰權限引起的bad permissions問題

錯誤截圖

問題原因:

看報出的錯誤: It is required that your private key files are NOT accessible by others. 翻譯就是: (服務器)需要你的私鑰文件不能被(除你之外的)其他人訪問。

通過ll(ls -a)命令查看該私鑰文件的權限,果然是644。

私鑰權限引起的bad permissions問題

644的文件權限

為什麼私鑰文件644就會有錯呢?我在網上找到如下解釋:

基於“公私鑰”認證的方式進行ssh登錄的情況,會生成一對公私鑰(公鑰文件名類似x.pub,私鑰文件名x),公鑰放在服務器上,自已保留私鑰,當進行ssh登錄,ssh程序會發送私鑰到服務器與服務器上的公鑰做匹配,匹配,成功方可登錄。這裡有一個安全問題,若私鑰文件被別人盜取了怎麼辦?linux中通過強制設私鑰文件的權限為700,這樣賬號沒盜取的情況下,私鑰文件是不能被訪問到的,實現了一定程度上的安全保證。

644權限,所屬組用戶和其他用戶都具有讀取的權限,當非法用戶知道了私鑰的內容,就可以連接服務器,出於安全考慮,服務器要求私鑰文件不能被其他人訪問(NOT accessible by others)。

解決方案:

使用chmod 600 fileName 命令將私鑰文件改為只有自己可讀可寫,取消其他人的訪問權限即可。

私鑰權限引起的bad permissions問題

600文件權限


分享到:


相關文章: