[筆記] 本機端電腦配置多個 SSH 身分存取遠端 Repo

若要在一台電腦上設置好開發環境,那 SSH 連線會是必須的。這邊筆記下生成 SSH 密鑰的指令、設定檔配置以及遠端將 .pub 公鑰輸入到遠端的 git 伺服器上。
ssh terminal folder


內容

基礎知識

以下是用 MAC 上的 terminal. 作為示範

1. ssh-keygen 指令用來生成密鑰,預設是存放在 ~/.ssh 目錄下,是一個隱藏檔
2. 預設的檔名是 id_rsa – 第一次可以用預設值,第二次如果還是用預設值的話,前者會被取代掉
3. 每次生成的檔案是成對的。若你使用 id_rsa_hello 當作名稱的話,那你在 ~/.ssh 目錄下會有 id_rsa_hello 和 id_rsa_hello.pub 兩個檔案
4. ssh-keygen 指令執行時,產生的檔案所放置的位置是根據「你當下 terminal 所在的環境決定的」。換言之,請先 cd 到 ~/.ssh 下,再行操作
5. ssh 的配置文件是放在 ~/.ssh 下的一個 config 檔案。第一次需要自行新增該檔案。
6. 當使用 ssh 連線時,會參考你的配置檔。如果 config 沒有配對到對應的連線資訊的話,會參預設考 ~/.ssh/id_rsa
7. 當你配置好身分後,若連線 github 或是 gitlab 跳出 Getting permission denied (public key) on gitlab 之類的訊息,表示電腦當前抓取的 ssh 身分有錯誤。可用 ssh-add <ssh-key檔案位置> 的指令來修正,如 ssh-add ~/.ssh/id_rsa_aaa_github


步驟

1. 切換到 ~/.ssh 目錄下,ssh-keygen 用產生一組 ssh-key
2. 產生的 ssh-key 檔案檔名,你可以自行定義,或是用預設的 id_rsa
3. 用 ls 看是否有正常生成,並放置在 ~/.ssh 目錄下
notes-local-multiple-ssh-identity-config-repo-1
4. 修改配置文件。如果在 ~/.ssh 下沒有的話,那用 touch config 新增一個,並打開該檔案編輯
5. config 的內容參考如下

6. 用 ssh-add 的指令,將身分加到電腦快取管理中。
7. 用 ssh-T <git 位置> 來測試連線是否成功

8. 以 github 為例,會出現以下的訊息
Hi <UserA>! You’ve successfully authenticated, but GitHub does not provide shell access.


參考資料

1. [Git] 多個SSH Key與帳號的設定(Mac)
2. 關於SSH key與多組GitHub帳號切換|bacnotes備份筆記
3. Git配置多账号切换,GitLab和GitHub分开账户
4. Getting permission denied (public key) on gitlab
5. [實作] 同一部電腦管理 Github 與 Gitlab SSH keys

按讚加入粉絲團

延伸閱讀