SSH Key設定不求人-一台電腦多平台多個使用者,一次搞定!

2023/11/09閱讀時間約 4 分鐘

第一天上班,你需要設定 SSH key,因為你將使用 SSH 來 clone 代碼 Repo。SSH 與 HTTP 的主要差別在於安全性和速度,而 SSH 比 HTTP 更加安全和快速。本篇文章的主要目的是介紹如何在一台電腦上使用 SSH 登入多個 GitHub 和 GitLab 帳戶。

不管你的公司使用 GitHub 或 GitLab 作為代碼 Repo 的託管平台,以下內容都適用。

讓我們開始吧~

Step 1 生成 SSH key

首先,在終端機中使用以下命令生成 SSH key:

ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/gitlab_userName_rsa

藉由 -f 參數,我們可以直接指定 SSH 金鑰的路徑。我們可以通過不同的檔名區分不同的金鑰,方便識別。如果不使用 -f 參數,則會跳出提示,要求輸入 SSH 金鑰的檔案名稱。預設情況下,SSH 相關資料會被儲存在 ~/.ssh 目錄中。

此步驟會在您指定的位置中生成兩個檔案,一個是公鑰,一個是私鑰。稍後我們需要將公鑰添加到 GitHub 或 GitLab 中。

Step2 設定SSH代理配置文件

藉由config這個檔案,為每個主機指定不同的ssh金鑰。

在~/.ssh新增config檔案

使用以下命令進入 .ssh 目錄:

cd ~/.ssh

創建一個名為 config 的新檔案,然後打開它:

touch config
open config

在 config 檔案中,您可以為每個主機指定不同的 SSH 金鑰。

# GitHub account 1

Host github.com-account1HostName github.comUser gitIdentityFile ~/.ssh/github_account1_rsa# GitHub account 2

Host github.com-account2HostName github.comUser gitIdentityFile ~/.ssh/github_account2_rsa# Gitlab account 2

Host gitlab.com-account1HostName gitlab.comUser gitIdentityFile ~/.ssh/gitlab_account1_rsa

最後,幫這隻檔案設定權限

chmod 600 ~/.ssh/config

Step3 將 SSH 金鑰添加到 ssh-agent 中

把剛剛新增的ssh key加進來

ssh-add ~/.ssh/gitlab_userName_rsa

ssh-agent 就會自動使用你的 SSH 金鑰進行身份驗證

你可以使用 ssh-add -l 命令來列出 ssh-agent 中已經添加的 SSH 金鑰。如果一切正常,你會看到你剛剛添加的 SSH 金鑰的指紋。

Step4 添加公鑰到遠程存儲庫

登錄到您的 GitHub 或 GitLab 帳戶,將您的 SSH 公鑰添加到帳戶的 SSH 金鑰列表中。

raw-image
raw-image

final step: 接下來我們就可以利用git clone把專案複製下來啦!

git clone git@gitlab.com-userabc:g5391/myCompany/my-repo.git

語法為

git clone <你在官網點git clone複製的那段>

不過要將預設的host改為剛剛你在config file寫好的host,它就會知道hostName是誰,要看哪份鑰匙。

Ps第一次連線到新主機時會跳出
The authenticity of host ‘gitlab.com (172.65.251.78)’ can’t be established.
ECDSA key fingerprint is SHA256:xxxx
這時請檢查他打印出來的fingerprint是對的,沒問題輸入yes就可,這步驟結束後他會將這個金鑰指紋添加到你的 known_hosts 檔案中(也是在~/.ssh中),以便將來進行自動驗證。

總結

設定 SSH 金鑰可以幫助你更加安全、更加高效地使用 Git,特別是在需要同時使用多個 GitHub 或 GitLab 帳戶時。總體而言,我們利用不同檔名以及config檔來做到一台電腦多個平台多個帳號的SSH key管理,一旦設置成功,就可以使你的工作更加順暢。

4會員
10內容數
分享感情與生活的故事,期望我們都能在愛與被愛的路上感到幸福,並且在這個只有活一次的人生裡好好的活成自己喜歡的樣子
留言0
查看全部
發表第一個留言支持創作者!