設定 ssh 金鑰登入遠端主機
使用 ssh key 登入遠端主機而不使用密碼登入
一般登入伺服器是使用帳號與密碼進行登入,但是密碼可能會因為抄錄或是傳遞給人而外洩
安全性的程度會比較沒有像SSH key 那麼安全,而且使用SSH key 登入可以就不用每次手動輸入密碼
建立登入端的 ssh key
使用者端建立 ssh key,使用指令
ssh-keygen
注意:ssh key 要是 RSA 的格式,如果是 OPENSSH 會不斷的報錯
參考資料:mac majave 10.14.1 ssh-keygen 金鑰格式問題
預設會產生在 .ssh/
路徑下
如果是用複製別人的 id_rsa 和 id_rsa.pub 的話需要重新設定權限,否則會報錯
chmod 600 id_rsa
chmod 644 id_rsa.pub
權限說明
-rw------- (600) -- 只有屬主有讀寫權限。
-rw-r--r-- (644) -- 只有屬主有讀寫權限;而屬組用戶和其他用戶只有讀權限。
-rwx------ (700) -- 只有屬主有讀、寫、執行權限。
-rwxr-xr-x (755) -- 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有讀、執行權限。
-rwx--x--x (711) -- 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有執行權限。
-rw-rw-rw- (666) -- 所有用戶都有文件讀、寫權限。這種做法不可取。
-rwxrwxrwx (777) -- 所有用戶都有讀、寫、執行權限。更不可取的做法。
以下是對目錄的兩個普通設定:
drwx------ (700) - 只有擁有者可在目錄中讀、寫。
drwxr-xr-x (755) - 所有用戶可讀該目錄,但只有擁有者才能改變目錄中的內容
遠端主機設定
登入遠端主機之後,檢查使用者家目錄是否存在 ./ssh/authorized_keys
檔案
若沒有則自行建立,並設定權限 chmod 600 authorized_keys
檔案內容為剛剛產生的 id_res.pub
的內容
範例:
ssh-rsa AABAB3NzaC1yc2Gmy80/{...中略...}/UD9CBSzNAya7r6w==
補充
讓雲端主機可以存取版本庫
- 建立 GCP 使用者後,依照上面做法產生 ssh key
- 把 public key 加到版本庫的 ssh key 列表中