zoukankan      html  css  js  c++  java
  • 一台电脑上的git同时使用两个github账户

    一台电脑上的git同时使用两个github账户

     一、总结

    一句话总结:如果不能做到同时用两个,那么可以考虑只用新的

     二、一台电脑上的git同时使用两个github账户

    在一台电脑上,想要配置多个远程git仓库,此时需要配置多个秘钥,目前的git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户(company),生成生成密钥对后,将公钥保存至github,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。

    但是在实际工作中,一般公司内部都有自己的独立的git仓库(gitpersonal.xxx.com),于是就会存在这样的情

    况,在github有私人的账号personal,公司的gitlab中的工作账号company,personalcompany因为环境不同,必须配置不同的username和email。所以必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用company的公钥密钥对,链接到公司内的gitlab时,使用company的公钥密钥对。假设company的密钥文件为id_rsa,personal的密钥文件为id_rsa_personal.

    在默认情况下,ssh总是使用id_rsa密钥文件进行链接,这样对于personal账号的认证自然是不通过的,不过,要实现多帐号下的SSH key切换在客户端做一些配置即可。

    首先

     

    cd ~/.ssh 

    使用

     

    ssh-keygen -t rsa -C 'personal@mail.com' -f id_rsa_personal

    生成新的

    SSH key:id_rsa_personal

    生成后将新的ssh public key添加到远程私人的gitlab仓库中, 然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下

    #DefaultGit
    Host gitpersonal.xxx.com
      HostName gitpersonal.xxx.com   
      User company
      IdentityFile ~/.ssh/id_rsa
    
    #SecondGit
    Host gitpersonal.xxx.com ##可以随意命名,链接时使用这个名字  
      HostName gitpersonal.xxx.com   #域名也可
      User personal
      IdentityFile ~/.ssh/id_rsa_personal
    
    </pre><pre>

    执行ssh-agent让ssh识别新的私钥。

    ssh-add ~/.ssh/id_rsa_new

    该命令如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent,可执行

    ssh-agent bash命令后再执行ssh-add命令。

    以后,在clone或者add remote的时候,需要把config文件中的host代替git@remoteaddress中的remoteaddress。

    同时,你可以通过在特定的repo下执行下面的命令,生成区别于全局设置的user.name和user.email。

    git config user.name "newname"
    git config user.email "newemail"
     
    #git config --global --unset user.name 取消全局设置
    #git config --global --unset user.email 取消全局设置

    执行

    git clone git@gitpersonal.xxx.com:personal/test.git  

    时会使用second的id_rsa_second与服务器进行连接.而链接非gitlab.xxx.com服务器时则会使用first的密钥进行链接。


     
     
  • 相关阅读:
    python-进程池实例
    python-进程通过队列模拟数据的下载
    python-多进程模板
    python-多线程同步中创建互斥锁解决资源竞争的问题
    CentOS6.5配置网络
    解决CentOS系统Yum出现"Cannot find a valid baseurl for repo"问题
    CentOS 6.5安装图形界面
    Centos安装git
    Web前端优化,提高加载速度
    谁说写代码的不懂生活
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9148708.html
Copyright © 2011-2022 走看看