Skip to content

[已解決][Linux] Permissions 0777 for '/home/clay/.ssh/id_rsa' are too open.

Last Updated on 2022-01-09 by Clay

最近我在另外一台伺服器上配置了自己的 SSH 金鑰,主要目的是希望在另外一台伺服器上跟他人共同撰寫的程式碼,能夠透過 git 指令來將專案推到 GitHub 上來進行版本控制。

為了與他們共同使用同一組金鑰(是我亂嘗試的一個怪方法...)過程中我將自動產生的金鑰 id_rsa 文件權限直接設定為 777。

不過 777 的權限則代表著這份文件對於所有用戶而言都是可讀可寫可執行的,甚至有許多使用 Linux 的前輩會呼籲絕對不要使用 777 賦予文件權限。

今天就連我在使用 git push 指令時,都遇到了下面這個報錯:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@adaw132547
Permissions 0777 for '/home/clay/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/clay/.ssh/id_rsa": bad permissions
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


簡單來說,就是我設定的私鑰文件權限太開放了,系統跳出了警告並阻止我繼續這樣操作。


解決方法

解決方法很單純,你可以參考 [Linux] 使用 chmod 指令改變檔案權限 來改變文件權限。

最低要求的權限其實只需要擁有者(也就是你自己)可讀即可,所以我們可以直接設定權限 400:

chmod 400 ~/.ssh/id_rsa


萬一將來有了需要編輯的需求,再使用:

chmod u+w ~/.ssh/id_rsa


來添加讀寫權限。當然,如果你要一步到位,當然可以直接把這份檔案修改成擁有者可讀寫:

chmod 600 ~/.ssh/id_rsa


順帶一提我對 Windows 系統的終端機指令不熟(慚愧...... 那也是我將來的學習目標之一),但據說只要將 chmod 改為 chgrp 就可以運作。

既然有看到,便順手紀錄在這裡。


References


Read More

Tags:

Leave a Reply