GitHub-Multiple-Account

因爲linux下面一個用戶只擁有一個本身的公鑰和私鑰,因此沒法同時在兩個不一樣的GitHub帳號上面設置相同的ssh key,因此最簡單的辦法就是新建一個用戶,而後這個新建的用戶生成本身的ssh key。可是還有另一種更加優雅的方式。linux

解決方案

$ ls ~/.ssh
authorized_keys  id_rsa  id_rsa.pub  known_hosts

1.其中id_rsaid_rsa.pub分別是對應的私鑰和公玥,由於要配置兩個帳號,因此咱們還須要生成另一對:git

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "fsmro@163.com"

2.而後從新在~/.ssh下面新建一個config文件,添加下面的內容:github

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

Host gitlab.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_2
$ ls ~/.ssh
authorized_keys  config  id_rsa_2  id_rsa_2.pub  id_rsa  id_rsa.pub  known_hosts

3.而後將公鑰添加到GitHub帳號shell

$ sudo apt-get install xclip

$ xclip -sel clip < ~/.ssh/id_rsa_2.pub
# Copies the contents of the id_rsa.pub_2 file to your clipboard

4.測試一下鏈接:ssh

$ ssh -T git@github.com
Hi ormsf! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@gitlab.com 
localhost :: ~/.ssh » ssh -T git@gitlab.com
Hi fsmro! You've successfully authenticated, but GitHub does not provide shell access.

btw: 下面這一步好像也能夠不用設置,push的時候會自動識別,不肯定。ide

5.在項目下進行以下設置,取消全局設置,固然也能夠保留一個全局的設置,之後不須要使用全局設置再從新設置。gitlab

# 取消全局設置
git config --global --unset user.name
git config --global --unset user.email

git config user.email 「sform@163.com」
git config user.name 「sform」

# 或者
git config user.email 「ormsf@163.com」
git config user.name 「ormsf」

或者直接編輯~/.gitconfig修改也行測試

$ cat ~/.gitconfig 
[user]
    name = ormsf
    email = ormsf@163.com
[push]
    default = simple
[http]
[http]
[http]
    proxy = http://localhost:8118
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息