美文网首页
GitHub和GitLab使用配置

GitHub和GitLab使用配置

作者: 114105lijia | 来源:发表于2018-07-11 11:22 被阅读27次

    本来一直使用github管理项目,后来公司搭建了gitlab环境,要求使用gitlab管理项目。在使用时,就与github有冲突。百度了一下,有2个解决方案:

    1.使用同一个邮箱,生成的 public key 也会是同一个(感觉有点不现实,至少我的邮箱是不同的,也懒的改)

    2.基于config文件(原理上就是对 SSH 协议配置 config 文件,对不同的域名采用不同的认证密钥。)

    配置流程:

    a.   生成私钥

     ssh-keygen -t rsa -C "xx@163.com"    //可以直接回车,默认情况是在ssh目录下,生成id_rsa、id_rsa.pub

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

    Generating public/private rsa key pair.

    Enter file in which to save the key (/Users/xx/.ssh/id_rsa): /Users/xx/.ssh/id_rsa_github

    这个时候手动输入路径和文件名/Users/xx/.ssh/id_rsa_github,之后2次输入电脑密码。会在ssh目录下生成id_rsa_github、id_rsa_github.pub两个文件/。

    查看一下:

    cd ~/.ssh

    ls

    这个时候会发现有id_rsa、id_rsa.pub、id_rsa_github、id_rsa_github.pub四个文件。

    将id_rsa.pub和id_rsa_github.pub分别打开,设置到github和gitlab的sshkey一项。

    cat id_rsa.pub     //可以直接打开,或者用sublime打开都行



    b.编写config文件,告诉本地git到不同的国家带不同的钥匙

    cd ~/.ssh

    vim config

    配置config(具体内容根据自己需求来定)

    #gitlab

    Host gitlab

    User xx

            HostName gitlab.*.com

            IdentityFile ~/.ssh/id_rsa

    #github

    Host github

    User xxxxx

            HostName github.com

            IdentityFile ~/.ssh/id_rsa_github

    c.配置仓库

    #gitlab 

    cd     ~/workspace/gitlab

    git init

    git config --global user.name 'xx'

    git config --global user.email 'xx@163.com

    #github

    cd     ~/workspace/githubgit init

    git config --local user.name 'xxxx'

    git config --local user.email 'xxxx@qq.com'

    注意在使用git config --local user.name 'xxxx'配置时,一定要到仓库目录下,配置完成后,可以查看一下,用户名和邮箱是否添加上去。

    cat ~/.gitconfig | head -3

    也可以使用git config --list查看所有的用户名和邮箱

    d.最后一步

    之前几步我都是在网上查看的,但是发觉按照要求做后,当使用gitlab时没有问题,但是使用GitHub克隆项目的时候还是会报错:git@github.com: Permission denied (publickey), Host key verification failed。(gitlab 邮箱是设置的global的,github邮箱是设置local的)

    在折腾了很久后,误打误撞添加了一下id_rsa_github之后就可以了。

    ssh-add ~/.ssh/id_rsa_github

    再次clone代码时,会有个警告。

    The authenticity of host 'x x x x' can't be established.

    ECDSA key fingerprint is SHA256:JUKzm0IYhwDal2m/OftPz3tRoAfaXCTzYKZas5wTx1I.

    Are you sure you want to continue connecting (yes/no)? yes

    输入yes就好了。

    相关文章

      网友评论

          本文标题:GitHub和GitLab使用配置

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