一、背景#
在同一台電腦上有時候需要使用多個 GitHub、gitee、gitlab 帳號,或者說你有多個帳號,不想來回生成公鑰,那麼這就需要使用到 git 配置多帳戶了。
二、準備#
環境:window 10、git
在使用之前你需要安裝 git,對於 git 安裝也是點擊下一步下一步就可以安裝完成,在此也需要對 git 命令有一定的了解。
前提條件:需要 C:\Users\nxg.ssh 目錄(文件夾)下,打開 git bash
如下圖所示:
打開之後使用這個界面:
** 注意:** 這路徑 C:\Users\nxg.ssh 對於有一定基礎的根據上圖是能看明白,就不再贅述了。
為什麼先執行這一步呢?原因是這樣的在你創建 config 文件,生成密鑰時都需要創建在這個 **.ssh** 目錄(文件夾)下。如果你在其他目錄下打開,那你就需要考慮創建文件時的路徑問題了。為了方便明了,就使用上述方法操作,省時省力。
三、配置#
3.1 創建 config 文件#
在 C:\Users\nxg.ssh 目錄(文件夾)下創建 config 文件,並且配置 ssh key 的路由策略。
創建 config 文件:
touch config
在 config 文件中配置
# GitHub
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
User git
# Github2
Host github2
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github2
User git
# gitee
Host gitee.com #自己的碼雲地址
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
User git
效果如圖所示:
“#” 表示註釋
Host 後面是名稱,可以隨便寫,相當於起了一個別名每一個 Host 就代表一個倉庫,倉庫參數另起一行,前有 4 個空格
HostName : 真正連接的伺服器地址ssh 的 host,SSH 地址 “git@” 後面到冒號前面的內容
User
:自定義的用戶名,一般使用 “git”
PreferredAuthentications
: 指定優先使用哪種方式驗證,支持密碼和秘鑰驗證方式 。使用 “publickey” 即可,git 倉庫均為這種形式權限認證 -- 可設為 publickey,password publickey,keyboard-interactive 等
IdentityFile
:指定本次連接使用的密鑰文件。 該 host 後台配置的公鑰對應的私鑰地址的絕對路徑
Port : SSH 默認端口號為 22,某些私有部署的 git 倉庫會更換端口號
3.2 全局配置#
以 github 為例:
# global全局配置,這裡使用全局配置
# 設置用戶名:
git config --global user.name 'abc'
# 設置郵箱:
git config --global user.email "[email protected]"
#秘鑰添加到本地,即生成密鑰
ssh-keygen -t rsa -C "[email protected]"
# 同理gitee帳號也是這麼操作的。
注:這裡的 abc 是 GitHub用戶名 ,[email protected]這裡是你綁定 GitHub 上的郵箱
如下圖效果:
配置 gitee 效果如下圖所示:
注意:生成密鑰文件需要與這裡保持一致
測試是否連接成功#
測試 GitHub 是否連接成功:
ssh -T git@github2
成功效果:
Hi abc! You've successfully authenticated, but GitHub does not provide shell access.
測試 Gitee 是否連接成功:
$ ssh -T [email protected]
成功效果:
Hi nxg! You've successfully authenticated, but GITEE.COM does not provide shell access.
注意事項:
四、關聯 github#
將 id_rsa_gitee.pub 文件中的內容添加到 gitee 設置中的 SSH 公鑰中。
將 id_rsa_github2.pub 文件中的內容添加到 github 的 settings 的 SSH and GPG keys 的 SSH 公鑰中。
注:上面的文件都在
效果如下圖所示:
注意#
在配置多個帳號的,方式有多種,可以使用直接修改文件的方式,也可以使用命令的方式
這裡使用修改文件的方式
首先需要在這 C:\Users\nxg 路徑下,找到 **.gitconfig** 文件,並打開此文件
注意:別直接雙擊打開,需要選擇打開方式,選文本打開,或者其他編輯工具打開。
.gitconfig文件內容:
[user]
name = xiaoli
email = [email protected]
[core]
autocrlf = true
[http]
sslVerify = false
[user]
name = abc
email = [email protected]
[core]
autocrlf = true
[http]
sslVerify = false
效果如下圖所示:
查看帳號列表:#
git config --global --list
效果如圖所示:
添加密鑰的方式#
方式一:
ssh-keygen -t rsa -C "[email protected]"
再執行 id_rsa
方式二:
ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa
效果如圖所示:
ssh-keygen 常用參數說明:
-t: 密鑰類型,可以選擇 dsa | ecdsa | ed25519 | rsa;
-f: 密鑰目錄位置,默認為當前用戶 home 路徑下的.ssh 隱藏目錄,也就是~/.ssh/, 同時默認密鑰文件名以 id_rsa 開頭。如果是 root 用戶,則在 /root/.ssh/id_rsa, 若為其他用戶,則在 /home/username/.ssh/id_rsa;
-C: 指定此密鑰的備註信息,需要配置多個免密登錄時,建議攜帶;
-N: 指定此密鑰對的密碼,如果指定此參數,則命令執行過程中就不會出現交互確認密碼的信息了.
舉例說明:同時指定目錄位置、密碼、註釋信息,就不需要輸入回車鍵即可完成創建: