因爲linux下面一個用戶只擁有一個本身的公鑰和私鑰,因此沒法同時在兩個不一樣的GitHub帳號上面設置相同的ssh key,因此最簡單的辦法就是新建一個用戶,而後這個新建的用戶生成本身的ssh key。可是還有另一種更加優雅的方式。linux
$ ls ~/.ssh authorized_keys id_rsa id_rsa.pub known_hosts
1.其中id_rsa
和id_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