GitLab关于SSH的使用
SSH
Git是分布式版本控制系统,这意味着您可以在本地工作,但您也可以将更改共享或“推送”到其他服务器。在将更改推送到GitLab服务器之前,您需要一个用于共享信息的安全通信通道。
SSH协议提供此安全性,并允许您对GitLab远程服务器进行身份验证,而无需每次提供用户名或密码。
有关SSH协议如何工作的更详细的解释,我们建议您阅读DigitalOcean的这本漂亮的教程。
查找现有的SSH密钥对
在生成新的SSH密钥对之前,检查您的系统是否已经在默认位置通过打开shell或Windows上的“命令提示符”运行以下命令:
Windows命令提示符:
type %userprofile%\.ssh\id_rsa.pub
Windows / GNU / Linux / macOS / PowerShell上的Git Bash
cat ~/.ssh/id_rsa.pub
如果您看到一个字符串,ssh-rsa您已经有一个SSH密钥对,您可以跳过下一个部分的生成部分,并跳到副本到剪贴板步骤。如果您没有看到字符串或想要生成具有自定义名称的SSH密钥对继续下一步。
注意:公共SSH密钥也可以命名如下:
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
生成一个新的SSH密钥对
要生成新的SSH密钥对,请使用以下命令:
Windows / GNU / Linux / macOS上的Git Bash
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
视窗:
或者在Windows上,您可以下载
PuttyGen
并按照本文档来生成SSH密钥对。
接下来,系统将提示您输入文件路径以保存SSH密钥对。
如果您还没有SSH密钥对,请按Enter键使用建议的路径。使用建议的路径通常允许您的SSH客户端自动使用SSH密钥对,而不需要额外的配置。
如果你已经有了一个SSH密钥对建议的文件路径,则需要输入一个新的文件路径,并声明此SSH密钥对将在您使用什么主机.ssh/config文件,请参阅使用非默认的SSH密钥对路径工作
的更多信息。
输入文件路径后,系统将提示您输入密码以保护SSH密钥对。使用SSH密钥对的密码是最佳做法,但不是必需的,您可以按Enter键跳过创建密码。
注意:
如果要更改SSH密钥对的密码,可以使用
ssh-keygen -p <keyname>。
下一步是复制公共SSH密钥,因为我们将需要它。
要将公共SSH密钥复制到剪贴板,请使用以下相应的代码:
MacOS的:
pbcopy < ~/.ssh/id_rsa.pub
GNU / Linux(需要xclip包):
xclip -sel clip < ~/.ssh/id_rsa.pub
Windows命令行:
type %userprofile%\.ssh\id_rsa.pub | clip
Windows / Windows PowerShell上的Git Bash:
cat ~/.ssh/id_rsa.pub | clip
最后一步是将您的公共SSH密钥添加到GitLab。
导航到“配置文件设置”中的“SSH密钥”选项卡。将您的密钥粘贴到“密钥”部分并给出相关的“标题”。使用可识别的标题,如“工作笔记本电脑 - Windows 7”或“家庭MacBook Pro 15”。
如果您手动复制公共SSH密钥,请确保您复制了从ssh-rsa您的电子邮件开始和结尾的整个密钥。
或者,您可以通过运行ssh -T git@example.com
(替换example.com为GitLab域)并验证是否收到Welcome to GitLab消息来测试您的设置。
使用非默认SSH密钥对路径
如果您为GitLab SSH密钥对使用非默认文件路径,则必须配置SSH客户端,以找到GitLab专用SSH密钥以连接到GitLab服务器(也许gitlab.com)。
对于您当前的终端会话,您可以使用以下命令(替换other_id_rsa为您的私有SSH密钥):
Windows / GNU / Linux / macOS上的Git Bash
eval $(ssh-agent -s)
ssh-add ~/.ssh/other_id_rsa
要保留这些设置,您需要将它们保存到配置文件中。对于OpenSSH客户端,这在~/.ssh/config某些操作系统的文件中进行了配置。以下是使用自己的SSH密钥的两个主机配置示例:
# GitLab.com server
Host gitlab.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/private-key-filename-01
# Private GitLab server
Host gitlab.company.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/private-key-filename
由于各种SSH客户端及其大量配置选项,对这些主题的进一步解释超出了本文档的范围。
公共SSH密钥必须是唯一的,因为它们将绑定到您的帐户。您的SSH密钥是通过SSH推送代码时唯一的标识符。这就是为什么它需要唯一地映射到一个用户。
部署密钥
部署密钥允许只读或读写(如果启用)使用单个SSH密钥对访问一个或多个项目。
这对于将存储库克隆到持续集成(CI)服务器非常有用。通过使用部署密钥,您不必设置虚拟用户帐户。
如果您是项目主人或所有者,则可以在“Repository”部分的项目设置中添加部署密钥。指定新的部署密钥的标题并粘贴公共SSH密钥。之后,使用相应的专用SSH密钥的计算机具有对项目的只读或读写(如果启用)访问。
您不能使用该表单两次添加相同的部署密钥。如果要将另一个项目添加到另一个项目中,请在“从可用项目部署密钥”列表中启用它。所有可访问的项目的所有部署密钥都可用。该项目的访问可以通过作为项目的直接成员,或通过组来实现。
部署密钥可以在项目之间共享,您只需要将它们添加到每个项目中即可。
应用
蚀
如何将您的SSH密钥添加到Eclipse:https : //wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration
故障排除
如果在Git克隆中,系统将提示您输入密码,例如git@gitlab.com's password:
您的SSH设置有问题。
确保您正确生成SSH密钥对,并将公共SSH密钥添加到您的GitLab配置文件中
尝试使用ssh-agent本文档前面所述手动注册您的私钥
尝试通过运行ssh -Tv git@example.com
(替换example.com您的GitLab域)来调试连接
GitLab关于SSH的使用的更多相关文章
- gitlab 创建SSH Keys 报500错
gitlab 创建SSH Keys 报500错 看了一下日志 root@322323:/home/git/gitlab/log# cat production.log Errno::ENOMEM (C ...
- gitLab添加ssh key
电脑新装了一台虚拟机,想要和gitLab建立一个安全的ssh连接,步骤如下 1.本机生成ssh key 系统环境:Linux 使用root用户登录,执行命令:ssh-keygen -t rsa -C ...
- GitLab配置ssh key
一.背景 当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码.但是网上很 ...
- gitlab的ssh key有2个
Gitlab添加SSH key可以pull不能push的问题 最后解决的是 使用http去clone pull 提交 没用ssh.就是需要输入密码
- Gitlab的SSH配置(linux和windows双版本)
1. 步骤 1.首先现在电脑端安装好git,windows端请安装Git for Windows,Linux端请自行网上查询(Ubuntu: sudo apt-get install git) 2 ...
- 为Docker容器中运行的gitlab添加ssh的一些问题记录
最近做的一个东西,是将gitlab10.x的汉化版本,从源码编译(在源码中自己定制一些东西),然后制作成Docker镜像,作为Docker容器来运行 在启用容器中的gitlab的ssh的时候,遇到了一 ...
- gitlab 配置 ssh key
打开本地git bash,使用如下命令生成ssh公钥和私钥对 ssh-keygen -t rsa -C 'xxx@xxx.com' 然后一路回车(-C 参数是你的邮箱地址) 然后打开~/.ssh/id ...
- GitLab non-standard SSH port
/***************************************************************************** * GitLab non-standard ...
- Macbook使用Gitlab配置SSH Key
git是分布式代码管理工具,远程代码管理是基于ssh的,代码上传大搜gitlab或者github代码仓储时,需要进行ssh配置. 把本地代码上传到服务器时需要加密处理,git中公钥(id_rsa.pu ...
随机推荐
- hibernate hql 查询指定…
以数组的形式抛出,前台页面就要把它当成一个数组来处理 以对象抛出,就要当成一个对象来处理. 在JSP页面使用标签时一定要注意这点. 版权声明:本文为博主原创文章,未经博主允许不得转载.
- 8、泛型程序设计与c++标准模板库2.5容器适配器
容器适配器是用来扩展7中基本容器的,是修改和调整其他类接口的类.他们不提供存放数据的实际数据结构的实现方法,而且容器适配器也不支持迭代器. 1.标准栈容器 使用STL中的标准栈为程序员提供了一层附加的 ...
- Gulp的学习和使用
Gulp是一种直观.自动化构建的工具. Gulp是基于Node和NPM,安装教程点这里. 什么是Gulp? Gulp使用了node.js的流控制系统,使其(Gulp)构建更快,因为它不需要将临时文件/ ...
- 利用表达式树Expression优化反射性能
最近做了一个.Net Core环境下,基于NPOI的Excel导入导出以及Word操作的服务封装,涉及到大量反射操作,在性能优化过程中使用到了表达式树,记录一下. Excel导入是相对比较麻烦的一块, ...
- bat实现监测计算机网络连接,断网自动重启网络连接
十月一体验了windows 10预览版之后,决定继续装回正式版,尝个鲜就好了,毕竟预览版还是不稳定,环境不是很方便. 决定装个最新正式版windows 8.1,结果问题来了,无线连接总是失败,显示网络 ...
- hortonworks docker 安装
1. 下载并解压安装脚本: Hortonworks Data Platform (HDP) for Docker 2. 进入到解压后的目录,运行下面的命令,{HDPversion} 需要替换成相应目 ...
- ch8 -- useLK
useLK 光流法跟踪FAST角点 执行 ./useLK ../../data 运行程序. 光流法需要include<opencv2/video/tracking.hpp>,用到列表 ...
- nagios客户端之nrpe3.2.1安装(Ubuntu)
1.删除dpkg安装的nrpedpkg -l | grep nrpedkpg -P nagios-nrpe-server 2.ubuntu下nrpe3.2.1安装 下载nrpe3.2.1的源码包:ht ...
- URAL 2080 Wallet
找规律发现只要找到两个相同数字之间,有多少个不同的数字,即为答案. 可以用树状数组离线处理. 坑点是卡有很多张,没用完的情况,后面的卡直接放在哪里, 就是 10 5 1 2 3 4 5 这样 开始数据 ...
- malloc内存申请--释放-收缩
一.验证思路和代码 #include <stdio.h> #include <unistd.h> #include <malloc.h> #include < ...