• 在Windows下配置多个git账号


    1.生成并部署SSH key

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

    在当前用户的.ssh目录下会生成id_rsa私钥文件和id_rsa.pub公钥文件,将id_rsa.pub中的内容添加至user1的github中。然后在git bash中输入以下命令测试该用户的SSH密钥是否生效:
    ssh -T git@github.com

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

    接着生成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 agent添加密钥后进行测试。因为系统默认只读取id_rsa,为了让ssh识别新的私钥,可以使用ssh-agent手动添加私钥:

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

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

    2.配置config文件

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

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

    配置文件内容

    # 配置user1 
    Host u1.github.com
    HostName github.com
    Port 6666 IdentityFile C:\Users\Administrator\.ssh\id_rsa PreferredAuthentications publickey User user1 # 配置user2 Host u2.github.com HostName github.com IdentityFile C:\Users\Administrator\.ssh\id_rsa2 PreferredAuthentications publickey User user2

    再通过终端测试SSH Key是否生效
    ssh -T git@u1.github.com
    ssh -T git@u2.github.com

    3.配置用户名和邮箱

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

    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通信,则需要修改远程仓库地址

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

    4.注意

    ssh -T git@github 时,一定要打 yes!yes!yes!!! 我就是被这里坑了!

    5.用法:

    比如:github 项目地址(ssh):https://github.com/user1/xxxx.git

    • 正常用法,,要求输入登录密码:
      git clone https://github.com/user1/xxxx.git

    • 使用配置文件后,不需要输入密码:
      git clone git@github.com:user1/xxxx.git

    • 配置git push不用每次输入用户名和密码: git remote set-url origin git@xxx.com:xxx/xxx.git

    6.参考文章

  • 相关阅读:
    hbase单机安装和简单使用
    工作随记--div最小高度
    工作随记——弹出QQ联系方式
    关于vs2012解决方案中项目DLL文件引用问题
    工作随想——框架之我见
    jQuery 选择表格(table)里的行和列及改变简单样式
    ASP.NET的Get和Post方式的区别归纳总结
    C# 静态类与非静态类、静态成员的区别
    引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题
    python技巧 一等函数
  • 原文地址:https://www.cnblogs.com/feiquan/p/11538433.html
Copyright © 2020-2023  润新知