GitLab配置ssh key

作者:佚名 上传时间:2019-04-11 版权申诉

一、背景

当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成ssh key,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成ssh key,然后配置在gitlab里,而后使用ssh协议进行提交和拉取git远程仓库的代码。

二、解决方案

  1. 打开本地git bash,使用如下命令生成ssh公钥和私钥对

    ssh-keygen -t rsa -C 'xxx@xxx.com' 然后一路回车(-C 参数是你的邮箱地址)

    GitLab配置ssh key

  2. 然后打开~/.ssh/id_rsa.pub文件(~表示用户目录,比如我的windows就是C:\Users\Administrator),复制其中的内容

  3. 打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮

GitLab配置ssh key

4. 到此就完成了gitlab配置ssh key的所有步骤,我们就可以愉快的使用ssh协议进行代码的拉取以及提交等操作了

5. 再试一下拉取代码和提交代码,应该就不需要输入密码了

三、本地配置多个ssh key

大多数时候,我们的机器上会有很多的git host,比如公司gitlab、github、oschina等,那我们就需要在本地配置多个ssh key,使得不同的host能使用不同的ssh key ,做法如下(以公司gitlab和github为例):

  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四个文件

三、总结

我们为什么要使用ssh协议呢?因为ssh更加安全,然后更加方便,比如我们公司的gitlab由http协议换成了https协议,那么如果你是使用http协议管理代码,那么需要修改所有的项目中的git地址变成https,这会把我们给逼疯的!但是如果我们一开始就是用ssh协议,这不需要任何的修改,简直不能再爽一点了。

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
GitLab配置ssh key
一、背景 当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协
git中ssh key配置详解
主要介绍了git中ssh key配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
PDF
225KB
2020-10-27 20:42
gitlab配置
做git代码库管理与文档管理。
txt
0B
2019-09-22 19:42
使用Git Bash配置SSH Key
在GitHub上进行操作需要在本地生成SSH Key,本示例代码演示如何使用Git Bash生成和添加SSH Key。# 生成SSH Key, 需要输入一个邮箱,一路回车ssh-keygen -t
Git Bash 2.33.0
Git
2023-04-24 09:11
Mercurial中如何配置SSH key
介绍如何在Mercurial版本控制系统中配置SSH key,以避免每次提交时都需要输入密码。$ ssh-keygen -t rsa -C "your_email@example.com&
Mercurial 5.8
Mercurial
2023-05-01 13:22
GitHub学习笔记GitHub配置SSH key
Win 10 Git 2.5 Clone git repositories using ssh,clone前配置SSH key 1.本机生成密钥 ssh-keygen -t rsa -C 1*****
PDF
42KB
2021-01-16 11:55
git 配置多个SSH-Key(转)
摘要 我们在日常工作中会遇到公司有个gitlab,还有些自己的一些项目放在github上。这样就导致我们要配置不同的ssh-key对应不同的环境。
gitlab的简单配置文件http https ssh启用
对docker+gitlab运行gitlab服务的简单配置。可选启动http/https/ssh。https中,ssl证书,请自行准备。这个配置没有启用redis,一些端口都是走默认端口,请注意。do
GZ
0B
2019-05-16 09:25
详解SSH如何配置key免密码登录
生成的key是和一对用户绑定的,生成key的用户以及存储这个key的公钥的远端主机的用户。ssh的原理就是,公钥给人家,自己留秘钥,远端主机的其他用户也是无法看到这个指定的用户的接受到的公钥的,所以用
DOCX
0B
2019-05-27 20:08
linux ssh key
ssh-key-gen在本地主机上创建公钥和密钥,用ssh-copy-id把公钥复制到远程主机上,直接登录远程主机
DOCX
0B
2020-05-25 05:22