使用ssh-agent管理本地多个git密钥

使用ssh-keygen生成ssh密钥的操作相信大家都很熟悉了。但是现在市面上有很多Git仓库,除了GitHub之外,还有CODING码云Gitee,以及公司的私有云代码仓库。我们不可能只使用其中一种,但是如果用最简单的方式去生成id_rsa,就意味着需要同时保存多个id_rsa。通过本文,你将学会如何通过ssh-agent管理多个id_rsa密钥。

其实,和最简单的方式一样,也是使用ssh-keygen命令(以GitHub为例):

1
ssh-keygen -t rsa -b 4096 -C "eimsteim@163.com" -f ~/.ssh/github_rsa

参数解释:

  • -t :加密协议
  • -b :字节数
  • -C :ssh-key的密钥名称(就是你配在Git仓库里的那个SSH Keys)
  • -f :文件全路径

生成rsa文件以后,还需要把这个新生成的文件添加到ssh-agent中进行管理。在终端下执行命令:

1
ssh -v git@github.com

最后两句会出现

1
2
No more authentication methods to try.  
Permission denied (publickey).

接下来在终端再执行以下命令:

1
ssh-agent -s

最后执行:

1
ssh-add ~/.ssh/github_rsa

此时我们需要检查下,github_rsa.pub的内容有没有配置到Git仓库中,如果已经配置了,可以通过下面的命令验证:

1
ssh -T git@github.com

如果提示:Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access. 问题就解决啦