一臺(tái)電腦上有一個(gè)ssh key,在github上提交代碼,由于其他原因
你可能會(huì)在一臺(tái)電腦上提交到不同的github上,怎么辦呢…
所以查了一下關(guān)于同機(jī)器多賬號(hào)的ssh-key配置,在此記錄一下。
操作步驟
如果我們Windows 系統(tǒng)上面已經(jīng)有了ssh-key再創(chuàng)建ssh-key的話,需要給我們的ssh-key文件取不同的名字,默認(rèn)是id_rsa,如果不重新起名的話,會(huì)把原有的給覆蓋掉。
1.新建ssh-key重新命名
這里我們新建的key名為 id_rsa2,路徑為:C:\Users\Administrator.ssh
首先打開git bash ,可以通過在桌面上右鍵打開 (右鍵 》 git bash here),切換到ssh目錄,輸入一下命令
//新建ssh-key
ssh-keygen -t rsa -C "mywork@email.com"
//為新建的ssh-key重新命名
Enter file in which to save the key
輸入文件名及路徑
C:\Users\Administrator\.ssh\id_rsa2
這樣的話會(huì)在 目錄下生成兩個(gè)文件
C:\Users\Administrator\.ssh\id_rsa2
C:\Users\Administrator\.ssh\id_rsa2.pub
2.新ssh-key添加到ssh agent中
因?yàn)槟J(rèn)只讀取id_rsa,為了讓SSH識(shí)別新的私鑰,需將其添加到SSH agent中:
首先打開git Bash
//打開ssh-agent 客戶端,否則會(huì)報(bào)錯(cuò)
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa2
3.配置 將不同賬號(hào)的工程圖服務(wù)器與ssh-key關(guān)聯(lián)
賬戶以及git服務(wù)器與對(duì)應(yīng)的密鑰關(guān)聯(lián)。在~/.ssh目錄下找到config文件,如果沒有就創(chuàng)建:
touch config
然后修改如下: 我的config配置如下:
# 該文件用于配置私鑰對(duì)應(yīng)的服務(wù)器
# Default github user(first@mail.com)
Host github.com
HostName github.com
User git
IdentityFile C:/Users/Administrator/.ssh/id_rsa
# second user(second@mail.com)
# 建一個(gè)github別名,新建的帳號(hào)使用這個(gè)別名做克隆和更新
Host github2
HostName github.com
User git
IdentityFile C:\Users\Administrator\.ssh\id_rsa2
其規(guī)則就是:從上至下讀取config的內(nèi)容,在每個(gè)Host下尋找對(duì)應(yīng)的私鑰。這里將GitHub SSH倉庫地址中的git@github.com替換成新建的Host別名如:github2,那么原地址是:git@github.com:funpeng/Mywork.git,替換后應(yīng)該是:github2:funpeng/Mywork.git.
4、用記事本打開新生成的~/.ssh/id_rsa2.pub文件,將里面的內(nèi)容添加到GitHub后臺(tái)。
可不要忘了添加到你的另一個(gè)github帳號(hào)下的SSH Key中。
5、測(cè)試:
$ ssh -T git@github.com
Hi gdutxiaoxu! You've successfully authenticated, but GitHub does not provide shell access..
$ ssh -T github2
Hi xujun94! You've successfully authenticated, but GitHub does not provide shell access.
6、應(yīng)用
假如我們要克隆我們的遠(yuǎn)程倉庫:https://github.com/xujun94/xujun.git ,在我的github 賬戶上配置 的為 ssh 可以為 id_isa2,正常情況下我們是需要輸入命令
git clone git@github.com:xujun94/xujun.git
git clone github2:xujun94/xujun.git
進(jìn)入我們的倉庫 ,添加xujun.txt 文件,add > commit > push ,將可以看到如下的效果
如果你只是通過這篇文章中所述配置了Host,那么你多個(gè)賬號(hào)下面的提交用戶會(huì)是一個(gè)人,所以需要通過命令git config –global –unset user.email刪除用戶賬戶設(shè)置,在每一個(gè)repo下面使用git config –local user.email ‘你的github郵箱@mail.com' 命令單獨(dú)設(shè)置用戶賬戶信息
您可能感興趣的文章:- Git 命令行教程及實(shí)例教程(附github注冊(cè))
- Git ssh 配置及使用方法
- Git下載與環(huán)境變量配置方法
- 手把手教你用Hexo+Github搭建屬于自己的博客(詳細(xì)圖文)