使用sshkey的方式访问gitlab
在使用jenkins创建jobs的时候配置git为ssh访问的方式报错
记录错误信息
Failed to connect to repository : Command "/usr/bin/git ls-remote -h git@192.168.1.5:isuyang/isuyang-web-www.git HEAD" returned status code 128:
stdout:
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly
因为使用gitlab的ssh访问方式可以不用每次都输入密码。
折腾我好久啊,苍天啊!终于搞定了!再次记录一下!
步骤
声明
我的gitlab和jenkins都是安装在同一个服务器上的,如果你的不在同一台服务器,可以参考
两外一篇笔记:【SSH免密码登陆的方式】去设置:
http://cddaeec9.wiz03.com/share/s/3dSKX92EukLW2hw5300gKpTx1jKMc30ywQms2wZFRD0ujDzF
配置服务器ssh免密码登录
登录服务器切换到git账户
[root@localhost ~]# su - git
[git@localhost ~]$
生成秘钥和公钥之前我先删除掉.ssh目录下的所有文件(非必须)
[git@localhost ~]$ rm -rf /home/git/.ssh/*
创建公钥和私钥
执行命令:ssh-keygen -t rsa -C "529572571@qq.com"
一路Enter;
[git@localhost .ssh]$ ssh-keygen -t rsa -C "529572571@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_rsa.
Your public key has been saved in /home/git/.ssh/id_rsa.pub.
The key fingerprint is:
37:28:62:b8:e0:57:9b:f7:1a:46:32:d2:e8:54:42:ef 529572571@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| . . |
| . o |
| .* . |
|. .+oE..S o |
|..ooo.*. . . |
| ..o o + |
| . o o |
| ... |
+-----------------+
查看生成的秘钥文件
[git@localhost .ssh]$ ll
total 8
-rw-------. 1 git git 1675 Sep 23 16:29 id_rsa
-rw-r--r--. 1 git git 398 Sep 23 16:29 id_rsa.pub
带后缀.pub的是公钥文件
不带后缀的是私钥文件
将公钥文件写入到authorized_keys文件中
执行命令:cat id_rsa.pub >> authorized_keys
[git@localhost .ssh]$ cat id_rsa.pub >> authorized_keys
修改authorized_keys的文件权限
执行命令:chmod 600 ~/.ssh/authorized_keys
[git@localhost .ssh]$ chmod 600 ~/.ssh/authorized_keys
修改SSH配置文件,并重启ssh服务
这个配置文件在/etc/ssh/sshd_config中
需要root用户去修改,所以要切换到root上。
把图中圈住的三个地方放开

执行命令:service sshd restart

测试一下
如果执行命令:
git ls-remote -h 项目的地址
能够不让输入密码就成功了!
[git@localhost .ssh]$ /usr/bin/git ls-remote -h git@192.168.1.5:isuyang/isuyang-web-sso.git
5033dfcb30a079d9cf9088778ac763817101e27b refs/heads/master
配置gitlab
添加gitlab ssh keys

注意key为下图中文件的内容:

配置jenkins
进入job里面找到【配置】

找到源码管理:
在Respository URL这一栏输入下图中的地址:

配置 Credentials
未配置之前:

Add--->Jenkins


再次强调private key的内容是下图中文件的全部内容:

添加之后,选中刚刚添加的信息,就不报错了!

注意:
网上说需要重启jenkins,我没有重启,你可以先尝试一下如果还报错可以重启试试。
使用sshkey的方式访问gitlab的更多相关文章
- 访问gitlab从http方式改为ssh方式,gitlab使用的不是标准22端口
设置步骤:1,本地进入.ssh查看是否存在密钥对:xxx和xxx.pub命令:cd ~/.ssh2,如果不存在,使用ssh-keygen来创建命令:ssh-keygen -t rsa -C " ...
- git学习------>在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面
目前就职的公司一直使用SVN作为版本管理,现在打算尝试从SVN迁移到Git.安排我来预言并搭建好相关的环境以及自己尝试使用Git.今天我就尝试在Center OS系统上安装GitLab,现在在此记录一 ...
- win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据(使用外部redis)
目录 话题 (191) 笔记 (137) 资料区 (2) 评价 (33) 介绍 讨论区 话题 win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据( ...
- Linux实现https方式访问站点
超文本传送协议(HyperText Transfer Protocol,HTML)是一种通信协议,它允许将超文本标记语言文档从web服务器传送到wel浏览器. HTML的特点: 1.支持客户/服务器模 ...
- SharePoint—用REST方式访问列表
REST的定义与作用 在SharePoint 2010中,基本上有如下几种数据访问方式: 服务器端对象模型 LINQ to SharePoint Web Service 客户端对象模型 ADO.NET ...
- salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce
本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...
- Chrome以https访问gitlab的问题:Your connection is not private
在Chrome中以https访问自己搭建的gitlab站点时经常出现下面的错误: Attackers might be trying to steal your information from xx ...
- 非链接方式访问数据库--查询的数据集用Dataset来存储。
private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using ...
- ADO.NET 连接方式和非链接方式访问数据库
一.//连接方式访问数据库的主要步骤(利用DataReader对象实现数据库连接模式) 1.创建连接对象(连接字符串) SqlConnection con = new SqlConnection(Co ...
随机推荐
- NodeJS 初学之安装配置环境
[TOC] 1.环境安装 操作系统: Ubuntu 16.04.2 LTS 1.1安装nvm ryan@ryan-900X5L:~/temp$ curl https://raw.githubuserc ...
- 【爬虫入门手记03】爬虫解析利器beautifulSoup模块的基本应用
[爬虫入门手记03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.Bea ...
- C# 复制列表
本文:如何复制一个列表 最简单的方法是 foreach foreach(var temp in a) { b.Add(temp); } 有没一个简单的方法? using System.Linq; va ...
- ubuntu下codeblocks安装与中文化
什么是Code::Blocks Code::Blocks是一个免费.开源.跨平台的集成开发环境,使用C++开发,并且使用wxWidgets做为GUI库.Code::Blocks使用了插件架构,其功能可 ...
- mysql的并发处理机制_下篇
MySQL的并发处理机制,有MVCC及锁机制来处理,上篇简要说明了 MVCC及隔离级别,这篇来说说mysql下的锁. 温馨提示:下文有几个表格长度较长,右下角的博文导航目录会挡道,浏览 ...
- (4.1)Spring MVC执行原理和基于Java的配置过程
一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...
- 浅谈前后端分离与实践 之 nodejs 中间层服务(二)
一.背景 书接上文,浅谈前后端分离与实践(一) 我们用mock服务器搭建起来了自己的前端数据模拟服务,前后端开发过程中只需定义好接口规范,便可以相互进行各自的开发任务.联调的时候,按照之前定义的开发规 ...
- ajax上传图片的本质
1.图片上传到服务器. 2.后台将图片地址传到html页面,以图片形式展现. 3.后天将图片地址加入到input表单中,表单处于隐藏状态. 4.前端删除图片,通过js操作,移除图片与表单数据. 5.图 ...
- java分页算法,传入当前pageIndex,pageSise,dataTotal可计算出页面上显示的页码,和是否启动上一页下一页
public class CalculationPage { private Boolean showStartPagerDot; private Boolean showEndPagerDot; p ...
- 优先队列(存储结构数组)--Java实现
/*优先队列--是对队列的一种改进 *要存储的数据存在优先级--数值小的优先级高--在队头 *优先队列的实现 *1.数组:适合数据量小的情况(没有用rear+front实现) *优先队列头在items ...