一台电脑上多个github用户的配置

在公司有一个专门访问私有库的github账号,同时也想使用我自己的github的账 号。

于是我参考了 这篇文章

github区分用户不是通过用户名,因为使用ssh的时候都是用的 git 这个用户 的。它是用不同的公钥来区分用户的。那么我们的目标就是配置不同的库使用不 同的公钥就可以了。

首先需要生成密钥对: 第一个密钥对我一般都是直接 ssh-keygen 然后一路回车完成。

生成第二个的时候,可以这样来:

  ssh-keygen -t rsa -C "your-email-address"

  Be careful that you don't over-write your existing key for your
  personal account. Instead, when prompted, save the file as
  id_rsa_COMPANY. In my case, I've saved the file to
  ~/.ssh/id_rsa_nettuts.

就是说保存的时候需要注意不要把原来的key覆盖掉了,我存为 ~/.ssh/id_rsa_pengpengxp

然后就是分别到各自的页面上去把对应的公钥上传上去。

最后配置的时候在 ~/.ssh/config 加入这样几句:

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

  Host github-peng
          HostName github.com
          User git
          IdentityFile ~/.ssh/id_rsa_pengpengxp

我的理解是,第一个 Host 是指本机的域名。 Hostname 是指真正的域名或 ip。用户名都是使用的 git 。最后就是设置不同的 Host 使用不同的认证 文件。

这样设置过后,公司的github直接正常使用即可。我自己的库,需要push的时候, 需要添加一个特殊的 remote , 以 git@github.com:pengpengxp/supermartket.git 为例:

  git remote add peng git@github-peng:pengpengxp/supermartket.git

添加后可能就是下面这个样子:

   ~/github/supermartket/ [master] git remote -v
  origin  git@github.com:pengpengxp/supermartket.git (fetch)
  origin  git@github.com:pengpengxp/supermartket.git (push)
  peng    git@github-peng:pengpengxp/supermartket.git (fetch)
  peng    git@github-peng:pengpengxp/supermartket.git (push)

peng 这个 remote push就可以了:

  git push peng master

这样设置后,向 peng push的时候,因为域名是 github-peng ,所以会使 用 ~/.ssh/id_rsa_pengpengxp 做为认证文件。但是实际使用的域名又确实是 github.com

Author: pengpengxp

Created: 2018-10-01 Mon 21:36