美文网首页
git本地管理多个密钥/账户(原创)

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

作者: 打代码的小鱼姑娘 | 来源:发表于2018-06-26 10:42 被阅读0次

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

    1.进入到~/.ssh   

        打开你的git bash , 输入命令: cd  ~/.ssh 

    2.生成 新的 ssh密钥

        如果我们电脑上已经存在了一个ssh key,那么我们需要在我们电脑上生成第二个你想在本电脑上使用的id_rsa,

       使用命令: ssh-keygen -t rsa -C "你的github注册邮箱地址"。

       Enter file in which to save the key (/c/Users/Y700/.ssh/id_rsa): 提示你填写你的系统盘下用户目录安放ssh密钥的目录,请使用自己电脑上相对应的目录, 此处默认会存放在c盘的用户名下的.ssh文件夹下(即你第一个github用户ssh key存放的目录).这里我填的是“id_rsa_me”,重新命名了ssh key防止默认与已有的ssh key重复。

        (附: 如果是需要删除已有的密钥,则此处不填写,直接选择覆盖原有的密钥,即删除)

    Enter passphrase (empty for no passphrase):  提示你输入提交项目时输入的验证密码,这是为了防止别人随便在你的项目上push东西;

    如果你不想每次操作都输入密码,可以不填.

    3.添加新 ssh Key

    默认SSH只会读取id_rsa,所以为了让SSH识别新的私钥,需要将其添加到SSH agent

    使用命令:$ ssh-add ~/.ssh/id_rsa_me 

    4.配置config文件

    ls命令查看.ssh文件中是否存在config文件

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

    如果不存在则需要创建config文件,命令:touch config,再对config文件进行编辑

    对config文件进行配置填写:

    #Defaultgithubuser(DodoMonster@email.com)-这其实是注释

    Hostdodo#把默认的常用的githubHost设为github.com较好

    HostNamegithub.com

    PreferredAuthenticationspublickey

    IdentityFile~/.ssh/id_rsa_me

    #seconduser(monster@qq.com)

    Hostmonster

    HostNamegithub.com

    PreferredAuthenticationspublickey

    IdentityFile~/.ssh/id_rsa

      其中Host 后的名字可以随意方便自己记忆,但HostName必须为github.com

        host monster 的设置中,IdentityFile~/.ssh/id_rsa的id_rsa是你存放公钥的文件,一般情况不更改,

    测试是否配置成功:

    使用命令:

    ssh-T git@github.com

    ssh -T git@ydy

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

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

    git remoteaddtestgit@dodo:monster/orderTicket.git

    而并非原来的git@github.com:monster/orderTicket.git

    这样每次连接都会使用id_rsa与服务器进行连接。

    配置至此,大功告成!

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

    遇到问题,看这里:

    1.如何查看本地已经存在的密钥cat id_rsa.pub

    2.执行ssh-keygen -t rsa -C "你的github注册邮箱地址" 出现 too many arguments 的错误

    问题解决:   可能是'-' 出错, 可以直接复制我的命令 :ssh-keygen -t rsa -C "你的github注册邮箱地址" (换成你自己的邮箱地址)

    3.出现 permission denied 的错误

    问题解决:  登录github账户, 找到对应的远程仓库, 如我的是yidongying/yidongying.github.io(这个是设置github pages的仓库) ,将id_rsa里面的公钥添加到这个仓库中;

    远程仓库配置公钥就不赘述了,不会的可以参考https://www.cnblogs.com/kobe2408/p/5236360.html

     如果要查看公钥  可以使用命令 : cat  id_rsa(你的公钥文件) 

    需要注意的是.你在远程仓库设置的公钥必须是你在vim config这步操作中hostmonster设置的公钥文件.

    参考资源:

       1. https://segmentfault.com/a/1190000005607713 (创建多个密钥)

        2.http://lambda.hk/git/2015/03/18/Git-Change-Account/  (切换本地账户)

    https://blog.csdn.net/ha000/article/details/53422126(多个git账户的切换)

      https://blog.csdn.net/qq_34902522/article/details/78498664 (删除密钥)    

    https://blog.csdn.net/qq_34902522/article/details/78498664 (删除密钥)    

    https://blog.csdn.net/piaotiejun/article/details/48734175(下面的错误办法解决)


    我是大鱼吃小鱼 || 易冬英 , 前端小渣渣一枚,如有不对,欢迎各位大佬批评指正!

    相关文章

      网友评论

          本文标题:git本地管理多个密钥/账户(原创)

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