• 一台电脑上的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的密钥进行链接。


     
     
  • 相关阅读:
    LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
    LeetCode 216. 组合总和 III(Combination Sum III)
    LeetCode 179. 最大数(Largest Number)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 106. 从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inorder and Postorder Traversal)
    指针变量、普通变量、内存和地址的全面对比
    MiZ702学习笔记8——让MiZ702变身PC的方法
    你可能不知道的,定义,声明,初始化
    原创zynq文章整理(MiZ702教程+例程)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9148708.html
Copyright © 2020-2023  润新知