美文网首页
如何通过不同的SSH密钥管理多个Github账户

如何通过不同的SSH密钥管理多个Github账户

作者: Kake | 来源:发表于2019-11-29 17:57 被阅读0次

我们都知道Github支持用SSH Key授权登录,这样可以免去每次提交代码都要使用账号密码登录的麻烦。SSH Key可以通过ssh-keygen命令生成一对公私钥在~/.ssh目录中。只需要把公钥配置到Github账户设置就可以,每次使用git命令操作时会默认使用~/.ssh/id_rsa这个私钥文件授权。

Github配置ssh key

当你使用多个Github账户之后,你会遇到多账户管理的问题。因为同一个对公私钥只能配置到一个Github账户上,其他账户如果也要用SSH Key的方式,需要再生成一对公私钥。生成另一对公私钥,把公钥配置到新的Github账户不麻烦,但是别忘了本地git命令默认使用的私钥就是最初那个id_rsa文件,怎么改变git使用的私钥文件就能解决多账户管理的问题。

我看了网上的其他文章都是要配置~/.ssh/config这个文件,这个方法造成的麻烦会更多,我介绍另外一种简单易操作的方法。

GIT_SSH_COMMAND

在操作git指令时,有一个环境变量我们没有注意过,使用GIT_SSH_COMMAND可以在操作不同账户时指定不同的私钥文件

假如我们有第二个Github账户kakegu,账户里有个仓库test

  1. 生成新的公私钥对,命名为kakegu,执行命令后~/.ssh目录下会生成两个文件
$ ssh-keygen -f ~/.ssh/kakegu

$ cd ~/.ssh && ls
$ kakegu kakegu.pub
  1. 配置公钥到新的kakegu这个Github账户上
  2. 使用GIT_SSH_COMMAND指定私钥文件,然后clone仓库下来,也可以使用其他git命令
$ GIT_SSH_COMMAND="ssh -i ~/.ssh/kakegu" git clone git@github.com:kakegu/test.git

不用担心指定私钥之后会改变默认环境,因为这条命令必须连起来使用才可以指向特定的文件,如果前面不加GIT_SSH_COMMAND,就还是默认的git账户私钥。

我们已经解决了多账户控制的问题,但是还是有点麻烦,因为每次操作前面都要加一些代码。这只是让大家能理解git的确有这个环境变量可以配置,接下来我们只需要把不同的配置放到~/.bashrc里就可以了,如果你用的zsh就放到~/.zshrc

alias kakegu='GIT_SSH_COMMAND="ssh -i ~/.ssh/kakegu"'

然后执行source ~/.bashrc让配置生效。这样我们就不用前面加这么多代码了,如果我想用kakegu这个账户,那我只需要在前面加上kakegu既可以,因为我们前面已经配置过alias

$ kakegu git clone git@github.com:kakegu/test.git

这样看起来就很简单,不管多少Github账户或者Gitee、Gitlab,总之就是给新的公私钥起个名字,alias变量和github账户名最好对应,这样自己也明白使用的是哪个账户。

相关文章

  • 如何通过不同的SSH密钥管理多个Github账户

    我们都知道Github支持用SSH Key授权登录,这样可以免去每次提交代码都要使用账号密码登录的麻烦。SSH K...

  • git本地管理多个密钥/账户(原创)

    我们可能会需要在一台电脑上以不同的github账户去使用git,这时就需要去解决如何管理本机上的多个ssh key...

  • git同时管理多个 密钥

    我们可能会需要在一台电脑上以不同的github账户去使用git,这时就需要去解决如何管理本机上的多个ssh key...

  • 2018-11-16

    Ubuntu ssh远程登录 一、ssh登录 首先远程连接可以通过ssh通过密钥或者账户的方式进行登录。这里并...

  • 本地Git关联多个Github账号 & SSH Config

    注:假设读者知道如何关联ssh key到Github账号。 场景 多个Github账号 希望通过ssh key关联...

  • ~/.ssh/config文件的使用

    config文件保存不同host的所使用的ssh密钥。 使用场景: 问题 你在github有多个账号,当push代...

  • 博客免密部署到GitHub的小操作

    每次写完博客,提交、部署到GitHub上的时候,会要求输入账户名和密码,我们可以通过设置SSH密钥以实现免密部署,...

  • GitHub账户设置多个SSH Keys

    博客原文传送门:GitHub账户设置多个SSH Keys 针对不同的git代码库配置不同的的git name, e...

  • github ssh keys录入-Mac说明

    为了防止直接使用 用户名 和密码 拉取自己的Github项目,我们可以通过SSH密钥拉取。 生成新 SSH 密钥[...

  • Git SSH

    创建单个ssh 密钥 创建 查看 创建管理多个ssh 密钥的时候 第一步创建 第二步,配置configer(~/....

网友评论

      本文标题:如何通过不同的SSH密钥管理多个Github账户

      本文链接:https://www.haomeiwen.com/subject/rgigwctx.html