本篇文章用来记录jenkins集成时,遇到的问题;

参考文档1:http://www.jianshu.com/p/ed0edb93e234

问题说明:jenkins 指定gitlab上的源码时,提示无权限

问题原因:需要使用jenkins用户生成的SSH key,将密钥放到jenkins中,公钥放到git中。

方法如下:

1.在安装jenkins的linux机器上,添加jenkins用户,设置密码;我这里是有了jenkins用户,然后修改了jenkins用户的密码

[dev@vhost6 /]$ cat /etc/passwd | grep jenkins
jenkins:x:992:989:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false

[dev@vhost6 jenkins]$ sudo passwd jenkins 
[sudo] password for dev: 
更改用户 jenkins 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。


2.切换到jenkins用户上;

[dev@vhost6 jenkins]$ su - jenkins
密码:
上一次登录:四 3月  9 18:30:26 CST 2017pts/1 上
[dev@vhost6 jenkins]$ ll
总用量 0
[dev@vhost6 jenkins]$ pwd
/var/lib/jenkins


3.生成SSH Key

[dev@vhost6 jenkins]$ ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/jenkins
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/dev/.ssh/jenkins.(这里保存的是私钥)
Your public key has been saved in /home/dev/.ssh/jenkins.pub.(这里保存的是公钥)
The key fingerprint is:
09:b3:2e:94:ea:c2:45:9a:b6:79:07:47:56:bf:df:af ylzyyy2016@126.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|       .         |
|      + .        |
|   . + + o       |
|  + = . S .      |
| + = o   .       |
|o = + .   . .    |
|.= . o     . .   |
| .o .        Eo. |
+-----------------+

4.将公钥放入gitlab中,位置为:http://IP地址/profile/keys,Add an SSH key界面

Title可以随便取名字,将公钥放入Key输入框中,点击Add key按钮保存。

公钥长相是这样的:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABQDIAcy1jHMGm/3FjCQDIAcy1jHWk3oXPewg/pothQQLxFeq8DJn0BDLEeSIvYSGRzZGUcQvv3x8IAKLOgUp8g3iZJg5i4yqIbsteUgQ2Aw6t9Vb2SyKRoIFhiD8NDXQ0Cbvcdz4nvsLrOz4QDIAcy1jH+JVOc2oQDIAcy1jHQDIAcy1jHSQ59ga+rdWsGnDaR0mObMyFjGxwSDNK4IAPajHHZzBxmxANtr1GR4Xkwj4Eheo2cpD7QCSAuo7jY+YfJFZxB/o4ghY9StPeEqdP/yzZDr/qzyQdgV78n+SYpGxhH+u0CSzdmnbtJuKNNoCyXNEGWUVvYgtTPTZlbOspOt9 xxxxxx@xxx.com



5.将私钥放入jenkins中,不好描述,直接放图片了,跟着图片的步骤走就好;

1)


2)注意的地方

1:Kind要选择“SSH 。。。。。”

2:Username要填入jenkins

3:Private Key项,要选择Enter directly;并在Key中填入密钥;

4:Passphrase中输入密码

5:点击“Add”保存


3)Credentials项选择jenkins项,jenkins应该会自动链接一下gitlab,刚开始报的错误就没有了




到此,问题就解决了。

感谢给予我帮助的各个文档的作者。






















Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐