• 在Mac(Linux)上为gitee码云 添加多个公钥 ssh key(适用于github添加)【转】


    转自:https://blog.csdn.net/qq_27295403/article/details/85335765

    前言:笔者在开发工作中开始准备使用个人码云来完成自己的个人作品,但是之前呢,我已经在本地添加过公司码云账号的ssh key.那如何再设置我们自己的ssh key呢.

    码云官网的说明文档(参考此文档):

    Git配置多个SSH-Key

    接下来我们开始操作
    (一)我们应该去生成一个ssh-key:

    xxxxx@xx.com是你的码云账号

    id_rsa_ldb随意你自己填写,但是请记住

    ssh-keygen -t rsa -C 'xxxxx@xx.com' -f ~/.ssh/id_rsa_ldb
    (二)在~/.ssh下创建config文件(使用touch config命令)

    (三)创建完config文件,vi或vim打开文件,写入

    # gitee 第一个ssh-key 公司账号
    Host gitee.com #这是主地址
    HostName git.oschina.ne #这是码云地址,不变
    IdentityFile ~/.ssh/id_rsa #标识文件
    User xx@xx.com #写上你的码云账号
    # gitee 第二个ssh-key 个人账号
    Host gitee.ldb.com #这是主地址
    HostName git.oschina.net #这是码云地址,不变
    IdentityFile ~/.ssh/id_rsa_ldb #标识文件
    User xx@xx.com #写上你的码云账号
    (四)在码云上添加自己的公钥

    (五)然后在回来终端使用命令测试是否配置成功:ssh -T git@xxx(此字段为Host),以下是测试结果

    ?完成.这时候就可以开始愉快地使用自己的个人账号了.

    (六)可能出现的问题

    (1)出现Permission denied提示,则说明有权限问题,而多用户时出现权限问题的原因:

    gitee或github使用SSH与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至 gitee或github ,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。但是如果是 多用户 (first,second),我们在连接到second的帐号时,second保存的是自己的公钥,但是SSH客户端依然发送默认私钥,即first的私钥,那么这个验证自然无法通过。

    解决ssh权限问题:

    通常一台电脑生成一个ssh不会有这个问题,当一台电脑生成多个ssh的时候,就可能遇到这个问题,解决步骤如下:

    1.查看系统ssh-key代理,执行如下命令

    ssh-add -l

    以上命令如果输出  The agent has no identities. 则表示没有代理。如果系统有代理,可以执行下面的命令清除代理:

    ssh-add -D

    2.然后依次将不同的ssh添加代理,执行命令如下:

    ssh-add ~/.ssh/id_rsa

    ssh-add ~/.ssh/id_rsa_ldb

    (2)上传者与我们的码云账号不一致

    原来是早已设置了全局的账号,邮箱,我们如果想要使用second的账号和邮箱,则

    1.找到项目所在目录下的 .git/文件夹,进入.git/文件夹,然后执行如下命令分别设置用户名和邮箱:

    git config user.name "xxx"

    git config user.email "xxx@xxx.com"

    然后执行命令查看config文件:cat config

    发现里面多了刚才配置的用户名和邮箱信息,即成功为该项目单独设置了用户名和邮箱

        [core]
            repositoryformatversion = 0
            filemode = true
            bare = false
            logallrefupdates = true
            ignorecase = true
            precomposeunicode = true
        [remote "origin"]
            url = https://github.com/xxx/xxxx.git
            fetch = +refs/heads/*:refs/remotes/origin/*
        [branch "master"]
            remote = origin
            merge = refs/heads/master
        [user]
            name = xxx
            email = xxx@xxx.com

    2,如果为所有项目设置默认的用户名和邮箱,则执行如下命令(即多了"--global"修饰,添加为全局变量):

        git config --global user.name"xxx"
        git config --global user.email"xxx@xxx.com"

    参考:Git配置用户名与邮箱

    如果有疑问的同学,请留言
    ————————————————
    版权声明:本文为CSDN博主「大唐锦绣」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_27295403/article/details/85335765

  • 相关阅读:
    Big-data:Linux基础(04)--快捷键
    Big-data:Linux基础(03)
    Big-data:Linux基础(02)
    [mysql]删除和修改
    git使用两个异常处理
    jmeter函数使用以及json格式的后置处理器
    jmeter遇到中文不可见
    jmeter参数化
    GIT简易使用
    mysql基本语句(更新中)
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/12384362.html
Copyright © 2020-2023  润新知