您的位置:首页 > 编程语言

git 多套公、私钥的配置以及使用

2017-02-08 16:59 260 查看

git 多套公、私钥的配置以及使用

git 多套公私钥的配置以及使用
业务使用场景

步骤
检查是否已存在相应的ssh key

生成新的ssh key并添加至ssh-agent

在相应的账号中添加生成的ssh key

连接测试

非gitHub 的项目如何配置

FAQ

业务使用场景

在个人的实际开发中,我们通常会碰到这样的场景:一个人同时拥有github账号(个人的)和公司的git账号(公司私有仓库),或者某个人同时拥有多个github账号,在这种情况下,要想轻松简便地使用git,那么不可避免地要配置多套公、私钥(ssh key),甚至可以这么说,有几个git的账号,那么不可避免地就需要多少套公、私钥。在单独一个账号的情况下,我们默认都是使用id_rsa(私钥)和id_rsa.pub(公钥),显然默认的只能支持一个,那如果有多个账号了,那该怎么办呢?请看本文详解

步骤

检查是否已存在相应的ssh key

生成ssh key,并添加至 ssh-agent

在相应的账号中添加生成的ssh key

连接测试

FAQ

检查是否已存在相应的ssh key

打开终端

输入
ls -al ~/.ssh


以我个人的为例:



可以看见,界面中列了3套ssh keys(其中一套打了马赛克��),一套默认的,一套github的,还有打马赛克的那一套。当然这是我安装过后的,假如你之前都没有安装过,理论上是一套都没有的,没有也没啥关系,我们自己生成就好了

核对列出来的ssh key是否有已存在的,假如你没有看到列出的公私钥对,或是不想再用之前的公私钥对,你可以选择下面的步骤生成新的公私钥对

生成新的ssh key,并添加至ssh-agent

打开终端

使用ssh key生成命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"


注意:后面的邮箱对应相应账号的邮箱,假如是github的账号,且注册账号的邮箱为xxxx@qq.com,则命令行为:
ssh-keygen -t rsa -b 4096 -C "xxxx@qq.com




接下来会提示你保存的ssh key的名称以及路径。默认路径是
(/Users/you/.ssh/id_rsa)
(you为用户个人目录)。这一步很重要,如果你使用默认的,且下一个账号也是使用默认的路径和文件名,那么之前的ssh key就会被后来生成的ssh key重写,从而导致之前的账号不可用。因此,正确的做法是给它命名,最吼以应用名进行命名,因为更容易区分。以下是我个人配的:
/Users/hongqiangren./.ssh/github_rsa




接下来会提示设置ssh 安全密码。这一步可以使用默认的(即不设置密码),直接按回车即可。倘若想了解更多关于ssh key密码设置的细节,可访问: “Working with SSH key passphrases”



ssh key 生成后,接下来需要为ssh key 添加代理,这是为了让请求自动对应相应的账号。网上很多文章写到需要另外配置config文件,经本人亲测,其实是不需要的,在生成了ssh key后,通过为生成的ssh key添加代理即可,为ssh key 添加代理命令:
ssh-add ~/.ssh/xxx_rsa
,xxx_rsa 是你生成的ssh key 的私钥名。下图以我自己的为例(本机为OS X系统)



在相应的账号中添加生成的ssh key

登录相应的git账号,此处以GitHub的为例,登录后点击用户图像,选择:
Setting
。登录GitHub



找到SSH and GPG keys,点击并添加ssh key







获取生成的public key,打开终端,使用命令行:
cat ~/.ssh/xxxx.pub
,此处以我个人的public key 为例:



复制该内容,并粘贴至上上图中的Key里面。然后点击保存



连接测试

接下来我们测试是否配置成功,打开终端,输入:
ssh -T git@github.com




如果显示以上信息,那么恭喜你,公私钥已经成功配置! :-)

非gitHub 的项目如何配置?

对于非github类型的公、私钥配置,其实是大同小异,因涉及到保密,我不方便讲本公司的git公私钥配置贴出来(实际上与以上大同小异)。相信聪明的小伙伴能根据以上的信息配置自己公司的ssh key

FAQ

讲道理,之所以写这篇文章,是因为之前遇到了这个坑,在网上找的文章,发现各种抄来抄去,并没有实际地解决问题。既然我看到没有一篇让我感到爽,并能实际解决问题的文章,恰巧自己又刚好解决了相关问题,那倒不如自己写一篇。希望能帮助到某些小伙伴!

贴上配置过程可能遇到问题以及解决办法链接

Troubleshooting With SSH

Error: Permission to user/repo denied

Error: Key already in use

Error: Agent admitted failure to sign
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息