• Windows下同一电脑配置多个Git公钥访问不同的账号


    前言

    产生这个问题的原因是我在Gitee码云上有两个账号,为了方便每次不用使用http模式推拉代码,于是我就使用了ssh的模式,起初呢我用两台电脑分别连接两个账号,用起来也相安无事,近段时时间台式机在家里,我在外地出差了,就想着把ssh公钥同时添加到不同的账号里,结果却发现不能用,在同一个平台下一个ssh公钥只能在一个账号上绑定,于是乎一番查找,功夫不负有心人,终于找到了在一台电脑上生成多个ssh公钥并在两个同平台的账号上使用的方式.

    解决方案

    首先确保已有Git环境的安装
    在本地生成两个ssh-key公钥

    ssh-keygen -t rsa -C "643987204@qq.com" -f ~/.ssh/643987204@qq.com_rsa
    ssh-keygen -t rsa -C "ZPS@DESKTOP-B78B5D4" -f ~/.ssh/id_rsa
    
    • 1
    • 2

    参数解释:
    -t 表示ssh的密钥类型,常用的有:rsa、ed25519、dss。
    -C 注释或称名称标识,此值随意,不加就是默认用户名加主机名。
    -f 就是可以指定生成的文件名称前缀,不加就是默认到用户目录的.ssh/id_rsa。
    (详细解释可以看评论区的文章链接)
    在这里插入图片描述
    生成后的ssh-key公钥文件
    ssh-key公钥
    在Gitee码云的不同账号中分别添加在两个不同的公钥,注意以.pub结尾的才是公钥文件!
    接下来是实现在本地可同时提交不同账号下仓库的代码的关键操作了,在生成的公钥文件的文件夹下创建config文件,里面输入如下内容

    # 添加config配置文件
    
    # 文件内容以下:
    # Gitee:2220655224@qq.com
    Host 2220655224.gitee.com
        HostName gitee.com
    #    PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa
    #    User 2220655224
    
    # Gitee:643987204@qq.com
    Host 643987204.gitee.com
        HostName gitee.com
    #    PreferredAuthentications publickey
        IdentityFile ~/.ssh/643987204@qq.com_rsa
    #    User 643987204  
    
    # 配置文件参数
    # Host : Host能够看做是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
    # HostName : 要登陆主机的主机名
    # User : 登陆名
    # IdentityFile : 指明上面User对应的identityFile路径
    # PreferredAuthentications : 选项的值是用逗号分隔的字符串,每个字符串代表一种认证方法。常见的认证方法包括:publickey:公钥认证 password:密码认证 hostbased:基于主机的认证 keyboard-interactive:交互式认证 gssapi-with-mic:GSSAPI 认证 在使用SSH客户端时,如果服务器支持的认证方法多于一种,客户端会按照这个配置文件中设置的顺序尝试认证。如果第一种方法失败了,它会尝试下一种方法。如果所有方法都失败了,SSH会终止尝试并返回失败信息。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述
    在这里插入图片描述

    拉取代码操作类似下面就行
    git clone git@643987204.gitee.com:ZPSV/jiaoZhi.git
    
    • 1

    在这里插入图片描述

    验证SSH-KEY
    ssh -T git@643987204.gitee.com
    
    • 1

    有successfully就是成功,还可以看到验证的是那个账号信息.
    在这里插入图片描述

    idea设置:

    URL添加就行
    在这里插入图片描述
    在这里插入图片描述

    注意

    1: 这样设置后每个平台的每个账号都需要在config中进行配置,对于只有一个账号的平台,未配置的话无法使用ssh方式管理代码,因为现有的配置中没法匹配到公钥文件
    2: 其他平台的代码管理也需要在config中配置 Host 、HostName和IdentityFile,多个账号的话类似上面congig文件操作。

    如有错误,感谢评论指正!!!

  • 相关阅读:
    详解傅立叶变换,看这一文足矣!
    数据库实验三 数据查询二
    企业常用Linux三剑客awk及案例/awk底层剖析/淘宝网cdn缓存对象分级存储策略案例/磁盘知识/awk统计与计算-7055字
    硬件安全与机器学习的结合
    【Flask基础】七,Flask--Jinja2模板学习
    9.03 Day45---搭建Vue开发环境,NPM工具使用,Vue工程创建,启动,打包,部署
    超有品的React项目实战:小米有品组件开发
    Revit建模中如何快速画好幕墙?
    封装自己的 jquery 框架
    四、浏览器渲染过程,DOM,CSSDOM,渲染,布局,绘制详细介绍
  • 原文地址:https://blog.csdn.net/qq_19320227/article/details/136568180