资讯专栏INFORMATION COLUMN

GitHub-Multiple-Account

NickZhou / 438人阅读

摘要:但是还有另外一种更加优雅的方式。在项目下进行如下设置,取消全局设置,当然也可以保留一个全局的设置,以后不需要使用全局设置再重新设置。取消全局设置或者或者直接编辑修改也行

由于linux下面一个用户只拥有一个自己的公钥和私钥,所以无法同时在两个不同的GitHub账号上面设置相同的ssh key,所以最简单的办法就是新建一个用户,然后这个新建的用户生成自己的ssh key。但是还有另外一种更加优雅的方式。

解决方案

</>复制代码

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

1.其中id_rsaid_rsa.pub分别是对应的私钥和公玥,因为要配置两个账号,所以我们还需要生成另外一对:

</>复制代码

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

2.然后重新在~/.ssh下面新建一个config文件,添加下面的内容:

</>复制代码

  1. Host github.com
  2. HostName github.com
  3. User git
  4. IdentityFile ~/.ssh/id_rsa
  5. Host gitlab.com
  6. HostName github.com
  7. User git
  8. IdentityFile ~/.ssh/id_rsa_2

</>复制代码

  1. $ ls ~/.ssh
  2. authorized_keys config id_rsa_2 id_rsa_2.pub id_rsa id_rsa.pub known_hosts

3.然后将公钥添加到GitHub账号

</>复制代码

  1. $ sudo apt-get install xclip
  2. $ xclip -sel clip < ~/.ssh/id_rsa_2.pub
  3. # Copies the contents of the id_rsa.pub_2 file to your clipboard

4.测试一下连接:

</>复制代码

  1. $ ssh -T git@github.com
  2. Hi ormsf! You"ve successfully authenticated, but GitHub does not provide shell access.
  3. $ ssh -T git@gitlab.com
  4. localhost :: ~/.ssh » ssh -T git@gitlab.com
  5. Hi fsmro! You"ve successfully authenticated, but GitHub does not provide shell access.

btw: 下面这一步好像也可以不用设置,push的时候会自动识别,不确定。

5.在项目下进行如下设置,取消全局设置,当然也可以保留一个全局的设置,以后不需要使用全局设置再重新设置。

</>复制代码

  1. # 取消全局设置
  2. git config --global --unset user.name
  3. git config --global --unset user.email
  4. git config user.emailsform@163.com
  5. git config user.name “sform”
  6. # 或者
  7. git config user.emailormsf@163.com
  8. git config user.name “ormsf”

或者直接编辑~/.gitconfig修改也行

</>复制代码

  1. $ cat ~/.gitconfig
  2. [user]
  3. name = ormsf
  4. email = ormsf@163.com
  5. [push]
  6. default = simple
  7. [http]
  8. [http]
  9. [http]
  10. proxy = http://localhost:8118

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38386.html

相关文章

发表评论

0条评论

最新活动
阅读需要支付1元查看
<