GIT:如何管理本机的多个ssh密钥(多个远程仓库帐号)

      最近在学习git,首先推荐一个我的认为很不错的git教程,学习后,从git新手变成了git入门了,仍需继续努力。 linux

      廖老师的git学习教程(其余git基础知识点,本篇博客就不作介绍了,本身看教程学习吧,老师讲解很不错,通俗易懂):nginx

      http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000  git

      这里是将本身遇到的一个问题,经过查阅资料,大部份内容转载网址: https://segmentfault.com/a/1190000005607713 ,很是感谢这位大神,在此也分享给其余爱好git的朋友。咱们可能会须要在一台电脑上以不一样的github帐户去使用git,这时就须要去解决如何管理本机上的多个ssh key的问题了(情景:好比你有一个github网站远程仓库的帐号,同时又有一个公司远程仓库的帐号,为了便于不一样仓库代码的pull和push,就须要配置多个ssh密钥了)。github

 

生成新ssh key

      若是咱们电脑上已经存在了一个ssh key,那么咱们须要在咱们电脑上生成第二个你想在本电脑上使用的id_rsa,使用命令:ssh-keygen -t rsa -C "你的github帐号"。 vim

红色标注部分会提示你把新生成的id_rsa存放到哪里,此处默认会存放在c盘的用户名下的.ssh文件夹下(即你第一个github用户ssh key存放的目录),所以咱们须要输入路径/c/Users/DodoMonster/.ssh(注意此路径是你的系统盘下用户目录安放ssh密钥的目录,请使用本身电脑上相对应的目录),最后我以“id_rsa_gman”从新命名了ssh key防止默认与已有的ssh key重复。segmentfault

     

    在输入了路径后,会提示你输入提交项目时输入的验证密码,不输则表示不用密码,这是为了防止别人随便在你的项目上push东西,因此最好仍是输入如下你的密码。回车,再重复输入确认回车便可(一路回车也能够,此时没有密码)。ruby

 

添加新ssh key

      默认SSH只会读取id_rsa,因此为了让SSH识别新的私钥,须要将其添加到SSH agent
使用命令:ssh-add ~/.ssh/id_rsa_gmanbash

     

    若是报错:Could not open a connection to your authentication agent.没法链接到ssh agent;可执行ssh-agent bash命令后再执行ssh-add命令服务器

 

配置config文件

      查看.ssh文件中是否存在config文件dom

      若是已存在则直接编辑config文件,命令:vim config          #这是linux的命令,进入了vim界面后按a或i或A或I进入编辑模式,编辑完成后按esc键输入:wq 保存文件退出

      若是不存在则须要建立config文件,命令:touch config,再对config文件进行编辑

      

   对config文件进行配置填写:

 #Default github user(DodoMonster@email.com)-这实际上是注释  Host github #把默认的经常使用的github Host设为github.com较好 HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_me

其中Host 后的名字能够随意方便本身记忆,但HostName必须为github.com。

# ************************************************
#second user(monster@qq.com) Host monster HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa ps:HostName 是域名

测试是否配置成功

  使用命令:

 ssh -T git@github.com ssh -T git@github 

出现如图的欢迎语则为配置成功。

注意:配置完成后,在链接Host不是github.com的github仓库时,远程库的地址要对应地作一些修改,好比如今添加monster账号下的一个仓库orderTicket,则须要使用以下命令这样添加:

git remote add test git@github:monster/orderTicket.git

     而并不是原来的git@github.com:monster/orderTicket.git(这样每次链接都会使用id_rsa与服务器进行链接)。

配置至此,大功告成!

 

    另外注意:github根据配置文件的user.email来获取github账号显示author信息,因此对于多账号用户必定要记得将user.email改成相应的email(monster@mail.com)。

相关文章
相关标签/搜索