美文网首页
GitLab配置ssh key

GitLab配置ssh key

作者: Justin_W | 来源:发表于2018-03-06 17:16 被阅读0次
    
    使用git clone命令从GitLab上同步代码库时,如果使用SSH链接(如:git@gitlab.com:example/example.git),但是你的SSH key没有添加到GitLab的账号设置中,系统会报下面的错误:
    
    Permission denied (publickey).
    
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    
    and the repository exists.
    
    这时候就需要在本地创建SSH key,然后将生成的SSH key文件的内容添加到GitLab账号上去。创建SSH key的方法很简单。 
    
    生成SSH Key的过程如下:
    
    
    1).首先打开linux服务器,输入命令:ls -al ~/.ssh,检查是否显示有id_rsa.pub或者id_dsa.pub存在,如果存在请直接跳至第3步。
    
    2).在bash中输入ssh-keygen -t rsa -C ”yourEmail@example.com”,注意这个地方的邮箱地址地址替换成你自己的邮箱地址即可,在显示如下的输出后一直按回车即可:
    
    生成的路径为/root/.ssh/ (为隐藏文件,生成ssh公钥和私钥对)
    
    3).打开id_rsa.pub文件,并且复制全部内容。 
    
    4).打开GitLab账户,打开SSH Keys: 
    将刚刚复制的内容添加到Key的文本域中,然后点击Add key。
    这样就添加了一个SSH key。
    
    5).完成上面的步骤之后就可以使用ssh来连接GitLab,并进行相应的操作了。
    
    
    本地配置多个ssh key
    1  为公司生成一对秘钥ssh key
    ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
    
    2  为github生成一对秘钥ssh key
    ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/..sh/github-rsa
    
    3  在~/.ssh目录下新建名称为config的文件(无后缀名)。用于配置多个不同的host使用不同的ssh key,内容如下:
    
    # gitlab
    Host gitlab.com
        HostName gitlab.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/gitlab_id-rsa
    # github
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/github_id-rsa
      ​
    # 配置文件参数
    # Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
    # HostName : 要登录主机的主机名
    # User : 登录名
    # IdentityFile : 指明上面User对应的identityFile路径
    
    4  按照上面的步骤分别往gitlab和github上添加生成的公钥gitlab_id-rsa.pub和github_id-rsa.pub
    
    5  OK,大功告成,再次执行git命令验证是不是已经不需要再次验证权限了。
    
    6  再次查看~/..ssh目录下的文件,会有gitlab_id-rsa、gitlab_id-rsa.pub和github_id-rsa、github_id-rsa.pub四个文件
    
    
    

    相关文章

      网友评论

          本文标题:GitLab配置ssh key

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