• 【git基础】Windows下Git多账号配置,同一电脑多个ssh-key的管理


    step1: gitlab

    $ ssh-keygen -t rsa -C xxx.yy@zzz.com
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa): id_rsa_gitlab
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_gitlab
    Your public key has been saved in id_rsa_gitlab.pub

    step2: github

    $ ssh-keygen -t rsa -C xxx@163.com
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/zzz/.ssh/id_rsa): id_rsa_github
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_github
    Your public key has been saved in id_rsa_github.pub

    step3: 将得到的id_rsa/id_rsa.pub文件保存在git默认访问的.ssh的目录;

    $ ls
    config  id_rsa_github  id_rsa_github.pub  id_rsa_gitlab  id_rsa_gitlab.pub  known_hosts  known_hosts.old

    step4: 将github/gitlab的公钥分别上传到对应的服务器;

    github:setting / SSH and GPG keys;

    gitlab:setting / SSH keys

    step5: 在.ssh目录创建config文本文件,完成对应的git配置;

    每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostNameIdentityFile两个属性即可

    Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
    Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub;

    HostName              这个是真实的域名地址
    IdentityFile          这里是id_rsa的地址
    PreferredAuthentications   配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
    User                配置使用用户名

    example:git clone git@mygithub:happyamyhope/IPM.git

    # GitLab.xxx.yy
    Host gitlab.xxx.yy
        HostName gitlab.xxx.yy
        IdentityFile  C:Userszzz.sshid_rsa_gitlab 
        RSAAuthentication yes
        PreferredAuthentications publickey
        User aaa.bbb@ccc.com
    # Github.com
    Host github.com
        HostName github.com
        IdentityFile /c/Users/zzz/.ssh/id_rsa_github
        RSAAuthentication yes
        PreferredAuthentications publickey
        User ddd@163.com

    step6:测试;

    $ ssh -T git@github.com
    /c/Users/zzz/.ssh/config line 6: Unsupported option "rsaauthentication"
    /c/Users/zzz/.ssh/config line 13: Unsupported option "rsaauthentication"
    Enter passphrase for key '/c/Users/zzz/.ssh/id_rsa_github':
    Hi ddd! You've successfully authenticated, but GitHub does not provide shell access.

    注意,ubuntu系统的配置过程几乎一样的!

    step7:  不同平台帐号的管理和使用;

    因为存在双/多账户,需要通过Git配置不同账户的用户和邮箱,这里采取GitLab用全局用户名和邮箱配置,而GitHub针对每个clone到本地的项目进行单独的用户名和邮箱配置,避免冲突。

    1)配置全局的用户名和邮箱;

    // 将GitLab设置为全局
    git config --global user.name "gitlab"
    git config --global user.email "gitlab@126.com"

    2)为GitHub上的每个repository/项目单独设置用户名和邮箱;

    // 注意:下述命令要到每个本地GitHub项目目录下执行
    git config user.name "github"
    git config user.email "github@126.com"

    3)最后进行可以代码的修改,拉取、提交、push等,验证配置是否成功。

    全局配置好像不管用啊,需要在每个git项目下单独色和值用户名和邮箱;

    参考

    1. Windows下Git多账号配置,同一电脑多个ssh-key的管理

    2. 一个Git终端如何配置多个Git仓库和账户;

    做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
    版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
  • 相关阅读:
    java:UDP广播发送与接收数据报实现
    使用Python自由切分pdf文件提取任意页面
    python实现 -- 盆友圈九宫格
    三次登陆
    django 连接 已有数据库 导出 models表
    默认列表转字典
    代码中的去掉注释
    python 列表套字典 根据相同的key分组
    python 列表套列表去重,列表套字典去重
    Tengine更新安装
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/15090335.html
Copyright © 2020-2023  润新知