本文以配置github.com賬號(hào)和git.oschina.net賬號(hào)來逐步演示在Windows環(huán)境下配置Git多賬號(hào)支持即在同一個(gè)電腦上管理多個(gè)ssh-key,對(duì)git多一分了解纺铭。
備注:這篇文章所有執(zhí)行命令的地方都是在管理員模式下進(jìn)行,即打開cmd板乙,Git Bash客戶端用管理員身份運(yùn)行程序。
1. 生成github.com對(duì)應(yīng)的私鑰公鑰(本文中文件地址C:\Users\popfisher目錄)
執(zhí)行命令 ssh-keygen -t rsa -C email 創(chuàng)建github對(duì)應(yīng)的sshkey典徊,命名為id_rsa_github寄啼,密碼 **123456 **
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">ssh-keygen -t rsa -C 774232122@qq.com</pre>
2. 同樣的方式生產(chǎn)git.oschina.net的私鑰公鑰(郵箱地址可以相同可以不同,本文相同)
執(zhí)行命令ssh-keygen -t rsa -C email創(chuàng)建github對(duì)應(yīng)的sshkey钠乏,命名為id_rsa_oschina栖秕,密碼 123456
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">ssh-keygen -t rsa -C 774232122@qq.com</pre>
3. 把上面得到的文件拷貝到git默認(rèn)訪問的.ssh目錄(win10在用戶目錄下,本文C:\Users\popfisher.ssh)
除了秘鑰文件之外晓避,config文件是后面的步驟中手動(dòng)生產(chǎn)的簇捍,known_hosts文件是后續(xù)自動(dòng)生產(chǎn)的
4. 把github對(duì)應(yīng)的公鑰和oschina對(duì)應(yīng)的公鑰上傳到服務(wù)器
GitHub添加SSH key的方式如下圖所示:
git.oschina.net添加SSH key的方式如下圖所示:
5. 在.ssh目錄創(chuàng)建config文本文件并完成相關(guān)配置(最核心的地方)
每個(gè)賬號(hào)單獨(dú)配置一個(gè)Host,每個(gè)Host要取一個(gè)別名俏拱,每個(gè)Host主要配置HostName和IdentityFile兩個(gè)屬性即可
Host的名字可以取為自己喜歡的名字暑塑,不過這個(gè)會(huì)影響git相關(guān)命令,例如:
Host mygithub 這樣定義的話锅必,命令如下事格,即git@后面緊跟的名字改為mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
HostName 這個(gè)是真實(shí)的域名地址
IdentityFile 這里是id_rsa的地址
PreferredAuthentications 配置登錄時(shí)用什么權(quán)限認(rèn)證--可設(shè)為publickey,password publickey,keyboard-interactive等
User 配置使用用戶名
config文件配置如下:
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 配置github.com Host github.com
HostName github.com
IdentityFile C:\Users\popfisher\.ssh\id_rsa_github
PreferredAuthentications publickey
User username1
# 配置git.oschina.net
Host git.oschina.net
HostName git.oschina.net
IdentityFile C:\Users\popfisher\.ssh\id_rsa_oschina
PreferredAuthentications publickey
User username2</pre>
6. 打開Git Bash客戶端(管理員身份運(yùn)行)執(zhí)行測(cè)試命令測(cè)試是否配置成功(會(huì)自動(dòng)在.ssh目錄生成known_hosts文件把私鑰配置進(jìn)去)
7. 測(cè)試成功之后就可以在電腦上同時(shí)使用git多多賬號(hào)同時(shí)操作,互不影響了
clone github上的項(xiàng)目AndroidRotateAnim
打開github上AndroidRotateAnim項(xiàng)目搞隐,復(fù)制其對(duì)應(yīng)的clone命令入下圖所示
執(zhí)行clone命令如下:
clone oschina.net上的項(xiàng)目AndroidDevTools
打開git.oschina.net上AndroidDevTools項(xiàng)目驹愚,復(fù)制其對(duì)應(yīng)的clone命令入下圖所示