需求:
公司有github賬號,自己有github賬號,想在git上同時使用,兩者互不干擾。
思路:
管理兩個SHH key。
解決方案:
一、生成兩個SSH key
為了舉例方便,這里使用“one”和“two”兩個賬戶。下同。
$ ssh-keygen -t rsa -C "one@gmail.com" $ ssh-keygen -t rsa -C "two@gmail.com"
不要一路回車,分別在第一個對話的時候輸入重命名(id_rsa_one和id_rsa_two),這樣會生成兩份包含私鑰和公鑰的4個文件。
注1:ssh-keygen是linux命令,可以讓兩個機器之間使用ssh而不需要用戶名和密碼
住2:一定要在~/.ssh路徑下運行命令行,不然生成的文件不會出現在當前目錄
二、添加私鑰
1、打開ssh-agent
(1)如果你是github官方的bash:
$ ssh-agent -s
(2) 如果你是其它,比如msysgit:
$ eval $(ssh-agent -s)
2、添加私鑰
$ ssh-add ~/.ssh/id_rsa_one $ ssh-add ~/.ssh/id_rsa_two
三、創建config文件
$ touch config
此時會出現空的config文件,然后添加如下內容:
# one(one@gmail.com) Host one.github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_one User one # two(two@ gmail.com) Host two.github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_two User two
四、部署SSH key
分別登陸兩個github賬號,進入Personal settings –> SSH and GPG keys:
點擊"new SSH key", 把下面兩個公鑰的內容分別添加到相應的github賬號中。
五、遠程測試【可跳過】
$ ssh –T one.github.com $ ssh –T two.github.com
六、使用
1、clone到本地
(1)原來的寫法:
$ git clone git@github.com: one的用戶名/learngit.git
(2)現在的寫法:
$ git clone git@one.github.com: one的用戶名/learngit.git $ git clone git@two.github.com: two的用戶名/learngit.git
2、記得給這個倉庫設置局部的用戶名和郵箱:
$ git config user.name "one_name" ; git config user.email "one_email" $ git config user.name "two_name" ; git config user.email "two_email"
3、上述都成功后,會發現鑰匙會由灰變綠。