美文网首页
windos电脑如何使用两个github账号提交

windos电脑如何使用两个github账号提交

作者: skyyhu | 来源:发表于2020-12-09 11:10 被阅读0次

    我们知道本地提交代码首先要把本地的ssh key 输入到github账号里面,如果只是一个账号我们很好处理,那如果是两个账号呢?好,我们来理下步骤:

    思路:本地电脑生成 两对密钥,分别用于两个github账号,将两对公钥输入到github网站上,然后用配置文件做映射每次提交仓库转换

    1).安装好Git客户端后,打开git bash,输入以下命令生成user1的SSH Key:
    ssh-keygen -t rsa -C "user1@qq.com"
    

    在当前用户的.ssh目录下会生成id_rsa私钥文件和id_rsa.pub公钥文件,将id_rsa.pub中的内容添加至user1的github中。

    2)测试ssh key 然后在git bash中输入以下命令测试该用户的SSH密钥是否生效:

    ssh -T git@github.com
    

    若连接成功则提示Hi user1! You've successfully authenticated, but GitHub does not provide shell access.
    注:该命令仅限于文件名为id_rsa的密钥。

    3).打开git bash,输入以下命令生成user2的SSH Key:

    进入~/.ssh路径下生成第二对密钥

    ssh-keygen -t rsa -C "user2@qq.com"
    

    提示输入文件名时,可以自定义一个文件名以防止覆盖前面的(可以输入id_rsa_second)

    注意此处网上大部分文章都没说是Windows 所以windows是需要更改下的

    接着生成user2的密钥,注意不能再使用默认的文件名id_rsa,否则会覆盖之前密钥文件:

    ssh-keygen -t rsa -f ~/.ssh/id_rsa2 -C "user2@email.com"

    再将该用户的公钥文件添加至github中。
    测试user2的ssh连接时需要指定密钥文件

    ssh -T git@github.com -i ~/.ssh/id_rsa2

    错误:
    
    按照ssh-keygen -t rsa -C "user2@qq.com" 生成rsa 但是本地已经有了所以会提示
    Enter file in which to save  the key  输入文件的路径,如果这个时候~/.ssh/ xx_id_rsa   继续确认步骤最后就会出现 
    Saving key  "~/.ssh/xx_id_rsa" failed : No such file or directory
    
    解决:
    Enter file in which to save  the key  输入文件的路径的时候用Windows的全路径   C:\Users\Administrator/.ssh/xx_id_rsa  这样就不会报错了。
    

    4) 测试user2 ssh 再将该用户的公钥文件添加至github中,测试user2的ssh连接时需要指定密钥文件

    ssh -T git@github.com -i ~/.ssh/id_rsa2
    

    也可以使用ssh agent添加密钥后进行测试。因为系统默认只读取id_rsa,为了让ssh识别新的私钥,可以使用ssh-agent手动添加私钥:

    ssh-agent bash
    ssh-add ~/.ssh/id_rsa2
    

    注:该方法仅限当前窗口有效,打开新的窗口则ssh连接失败。

    注意:ssh agent 可能会出现 unable to start ssh-agent service, error :1058 如果执行出错不用管了 用上面的测试方法就可以

    5) 配置config文件

    在.ssh目录下创建一个config文本文件,每个账号配置一个Host节点。主要配置项说明:

    Host      主机别名
    HostName  服务器真实地址
    IdentityFile  私钥文件路径
    PreferredAuthentications  认证方式
    User  用户名
    

    具体配置文件内容如下:

    # 配置user1 
    Host user1.github.com
    HostName github.com
    IdentityFile C:\\Users\\Administrator\\.ssh\\user1_id_rsa
    PreferredAuthentications publickey
    User user1
    
    # 配置user2
    Host user2.github.com
    HostName github.com
    IdentityFile C:\\Users\\Administrator\\.ssh\\user2_id_rsa2
    PreferredAuthentications publickey
    User user2
    

    再通过终端测试SSH Key是否生效

    ssh -T git@user1.github.com
    ssh -T git@user2.github.com
    
    注意点:
    从github上新建仓库克隆仓库需要变化下,这点很重要 这也就是为什么要新建那个config文件的作用,其实就是一个映射关系
    
    ### 转换规则
    # 原始clone 地址
    #git@github.com:xx/user1Project.git
    #git@github.com:xx/user1Project.git
    
    # 新clone地址
    #git@user1.github.com:xx/user1Project.git
    #git@user2.github.com:xx/user1Project.git
    

    (6)配置用户名和邮箱

    如果之前配置过全局的用户名和邮箱,需要取消相关配置,再在各仓库下配置相应的用户名和邮箱。

    git config --global --unset user.name
    git config --global --unset user.email
    

    为各仓库单独配置用户名和邮箱

    git config user.name "user1"
    git config user.email "user1@email.com"
    

    如果原先使用HTTPS通信,使用sshkey 方式则需要修改远程仓库地址

    git remote rm origin
    git remote add origin git@u1.github.com:xxx/xxxxx.git
    

    相关文章

      网友评论

          本文标题:windos电脑如何使用两个github账号提交

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