Git配置 多账户SSH KEY

      现在用到git的地方越来越多了,工作中公司服务器会用到,开源项目上也会用到,这就涉及到Git多账户在一台电脑上的配置和管理了。


     第一步:如果第一个账户已经配置好了,跳到第二步。打开git-bash输入命令:    

                     $ ssh-keygen -t rsa -C "youremail@yourcompany.com" -f ~/.ssh/id-rsa

                     接着按两个回车,最后在~/.ssh目录会生成id-rsa和id-rsa.pub两个文件,将公钥id-rsa.pub里面的内容全部复制粘贴到你账号服务器上的SSH配置中

                     注意:这里youremail@yourcompany.com是邮箱,即你第一个账户需要的邮箱

                                 ~/.ssh 在windows中一般是 C:\Users\当前系统用户\.ssh

   

    第二步:生成第二个SSH KEY用于第二个账户,输入命令 :    

                    $ ssh-keygen -t rsa -C "第二个账户的邮箱" -f~/.ssh/id-rsa2

                    接着后面和第一步一样

                    注意:这里的邮箱可以和第一步的一样,不过这里生成的两个文件是不一样,是id-rsa2和id-rsa2.pub,因为我们输入的命令后面是id-rsa2,名字可以随便定,跟其他的账户的文件名不同就行

   

     第三步:在 ~/.ssh 目录下新建一个config文件

                    在config文件中添加内容如下:

                    #git
                    Host 192.28.1.81
                               Hostname 192.28.1.81
                               Port 29418
                               User llp
                               IdentityFile ~/.ssh/id_rsa

                    #gitlab
                    Host 192.28.2.2
                               Hostname 192.28.2.2
                               User llp
                               IdentityFile ~/.ssh/id_rsa2

 

                    注意:

                                Hostname是服务器地址

                                User是用户名

                                Port是端口,我这里第一个账户服务器改了默认端口

                                IdentityFile是对应的私钥文件名,比如我第一个账户用的id-rsa,第二个账户用的id-rsa2,如果你有第三个第四个账户,可以重复生成不同的SSH KEY,文件名不同不同,然后在config文件中进行配置

                                这里Host是别名,可以自定义,但要跟你项目url中的地址一致,这个很关键。比如我的项目地址是git@192.28.2.2:lululang/Messaging.git,其中192.28.2.2就是地址。在clone下的项目目录中有个.git的隐藏文件夹,其中有个config文件

                                 [core]
                                 repositoryformatversion = 0
                                 filemode = false
                                 bare = false
                                 logallrefupdates = true
                                 symlinks = false
                                 ignorecase = true
                                 hideDotFiles = dotGitOnly
                                 [remote "origin"]
                                      url = git@192.28.2.2:lululang/Messaging.git
                                      fetch = +refs/heads/*:refs/remotes/origin/*
                                 [branch "new"]
                                       remote = origin
                                       merge = refs/heads/new

                     上面红色字部分就写明了项目的url,git通过这个配置文件提取地址,然后在.ssh/config中找等于这个地址的Host,最终解析出真正的服务器地址Hostname和相应的用户名和rsa文件。如果需要修改Host,需要将.ssh/config和.git/config的地址都改成一样的比如Host改成lululang.com,正相应的.git/config中的url改成git@lululang.com:lululang/Messaging.git


     第四步:用户名、email配置,用于提交

          a)配置全局的,如果都是一个用户名和email提交的话,配置一个全局的就ok了

               $ git config --global user.name  "username"

               $ git config --global user.email  "useremail@xxx.xxx"

          b)配置局部的,如果每个项目都用不同的用户名和email提交的话,就需要git然后cd到具体的项目根目录下进行配置,配置命令如下:

                 $ git config user.name "username"

                 $git config user.email "useremail@xxx.xxx"


          最终是在项目根目录下的.git/config文件保存相关的配置,红色的是配置后多出来的,如下:
              [core]
                  repositoryformatversion = 0
                  filemode = false
                  bare = false
                  logallrefupdates = true
                  symlinks = false
                  ignorecase = true
                  hideDotFiles = dotGitOnly
              [remote "origin"]
                  url = git@192.28.2.2:lululang/Messaging.git
                  fetch = +refs/heads/*:refs/remotes/origin/*
              [branch "new"]
                  remote = origin
                  merge = refs/heads/new-ui
              [user]
                  email = lululang@xxxxx.com
                  name = lululang

             

   

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值