在實際工作中,常常會遇到多個git帳號(即多個遠程倉庫)的情況,這時候如果只有一個SSH-key則無法滿足現有要求,故需要配置一下多ssh-key的情況,本事例以github.com和git.oschina.net兩個帳號為例,進行詳細操作說明。(本文以windows10操作系統為例)
1.生成github.com和git.oschina.net對應的私鑰和公鑰
切換到git默認訪問的.ssh目錄下(本文默認路徑為c/Users/landyChris/.ssh)
1.1生成github.com私鑰和公鑰
執行命令:
ssh-keygen -t rsa -C xxxx@hotmail.com
創建github對應的sshkey,命名為id_rsa_github,密碼 123456(密碼可以為空)
1.2生成git.oschina.net私鑰和公鑰
以同樣的方式生成,郵箱的地址可以相同,也可以不同,看自己具體的git倉庫的帳號而定。
由以上操作后,.ssh目錄下含有以下文件。
共有4個文件(id_rsa和id_rsa.pub為之前安裝git時候產生的公鑰和密鑰文件),分別是github和oschina的公鑰和密鑰文件。
2.分別把github對應的公鑰和oschina對應的公鑰上傳到服務器
2.1 github
選擇account-->setting進行配置,如下圖所示:
找到SSH AND GPG KEYS菜單,點擊New SSH Key按鈕,如下圖所示:
然后輸入上面步驟生成的公鑰,
2.2 oschina
同理在https://gitee.com/profile/sshkeys 上即可設置oschina的公鑰,如下圖所示步驟。
3.在.ssh目錄下創建config文本文件并完成相關配置(重點)
每個賬號單獨配置一個Host,每個Host要取一個別名,每個Host主要配置HostName和IdentityFile兩個屬性即可
Host的名字可以取為自己喜歡的名字,不過這個會影響git相關命令,例如:
Host mygithub 這樣定義的話,命令如下,即git@后面緊跟的名字改為mygithub
git clone git@mygithub:landy8530/hello-world
HostName 這個是真實的域名地址
IdentityFile 這里是id_rsa的地址
PreferredAuthentications 配置登錄時用什么權限認證--可設為publickey,password publickey,keyboard-interactive等
User 配置使用用戶名
配置事例如下:
# 配置github.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\landyChris\\.ssh\\id_rsa_github
PreferredAuthentications publickey
User landy8530
# 配置git.oschina.net
Host git.oschina.net
HostName git.oschina.net
IdentityFile C:\\Users\\landyChris\\.ssh\\id_rsa_oschina
PreferredAuthentications publickey
User landy8530
4.執行測試命令(會自動生成known_hosts文件把私鑰配置進文件中)
測試github:
ssh -T git@github.com
測試oschina:
ssh -T git@git.oschina.net
出現以上信息,說明兩個git帳號已經配置成功!
5.多賬號操作事例
測試成功后,就可以在電腦上使用git多賬號進行同時互不影響的操作了。
例如:clone gitbub上的hello-world的一個demo事例:https://github.com/landy8530/hello-world.git
操作如截圖所示:
同理:clone oschina上的hello-world的一個demo事例:https://git.oschina.net/lylyx/hello-world.git