jenkins配置ssh免密码登陆

简介:

说明

jenkins构建时需要连接远程服务器并且执行脚本,这时就需要配置ssh免密钥登录。jenkins构建时都是以jenkins用户进行操作,所以要以jeknins用户来配置免密钥登录。本教程以用户名qiaofeng为例说明。 A:192.168.10.78, B:192.168.10.76,需求:A登录B时免密钥。

 

命令

ssh-keygen -t rsa 产生公钥与私钥对

ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中

 

步骤

 

1. 切换到qiaofeng用户

    su - qiaofeng

 

2. 用ssh-keygen -t rsa产生密钥对

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[qiaofeng@jenkins ~]$ ssh - keygen  - t rsa
Generating public / private rsa key pair.
Enter  file  in  which to save the key ( / home / qiaofeng / .ssh / id_rsa):
Enter passphrase (empty  for  no passphrase):
Enter same passphrase again:
Your identification has been saved  in  / home / qiaofeng / .ssh / id_rsa.
Your public key has been saved  in  / home / qiaofeng / .ssh / id_rsa.pub.
The key fingerprint  is :
56 : 3e : 89 :fc: 6f : 8c : 4d : 06 :ee: 5f :b9: 6b :a3: 6a :d9:e2 qiaofeng@jenkins
The key's randomart image  is :
+ - - [ RSA  2048 ] - - - - +
| |
| |
| . |
| .  + .. |
| S. + . |
| . ...o . |
| ..O o |
* . = .o. |
| oE = + ooo |
+ - - - - - - - - - - - - - - - - - +

 

3. 用ssh-copy-id将公钥从A复制到B

1
2
3
4
5
[qiaofeng@jenkins ~]$ ssh - copy - id  - i ~ / .ssh / id_rsa.pub  "-p 22223 root@192.168.10.76"
root@ 192.168 . 10.76 's password:
Now  try  logging into the machine, with  "ssh '-p 22223 root@192.168.10.76'" and  check  in :
.ssh / authorized_keys
to make sure we haven 't added extra keys that you weren' t expecting.

 

注意

ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中。

如果你远程服务器SSH端口没有修改过,可以不用加-p 22223,要特别注意双引号。

当然你复制文件到远程服务器也可以用SCP命令。

 

4. 验证登录

[qiaofeng@jenkins ~]$ ssh -p 22223 root@192.168.10.76

Last login: Mon Apr 17 15:10:04 2017 from 192.168.10.78

[root@hundsun ~]#

 

扩展

1. 现在实现了需求,如果你想B访问A时也免密钥,只要在B上按上面的步骤来。

 

2. 如果添加指纹的时候提示添加失败,是因为你以前添加过了这个ip的指纹。

解决办法:将.ssh目录的known_hosts文件删除掉。也可以打开这个文件把对应ip的那条记录删除。

 

3. 注意文件权限的问题

 

A

[qiaofeng@jenkins ~]$ ll .ssh/

-rw-------. 1 qiaofeng qiaofeng 1671 4月 19 05:10 id_rsa

-rw-r--r--. 1 qiaofeng qiaofeng 398 4月 19 05:10 id_rsa.pub

-rw-r--r--. 1 qiaofeng qiaofeng 417 4月 19 05:08 known_hosts

B

-rw------- 1 root root 1217 Apr 21 10:46 /root/.ssh/authorized_keys



本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1918027,如需转载请自行联系原作者

相关文章
|
7月前
|
网络安全 开发工具 git
配置本地环境以管理Git多账户SSH连接的方法
通过以上步駟设置后, 您可以轻松管理多個 Git 账户并且根据不同项目需求切换 SSH 密匙进行版本控制操作。
927 20
|
9月前
|
网络安全 开发工具 git
GitHub 多账户 SSH 配置指南
本文介绍了如何在同一台电脑上配置多个 GitHub 账户的 SSH 密钥。内容包括:检查现有密钥、生成新的 SSH 密钥、配置 SSH config 文件、将公钥添加到 GitHub、验证 SSH 连接、设置 Git 用户信息、创建工作区目录、使用不同账户克隆仓库,以及为每个仓库配置独立的用户信息等步骤。通过这些操作,可以实现在不同项目中使用不同的 GitHub 账户进行提交和管理。
732 0
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
522 10
|
网络安全 Windows
在Windows电脑上启动并配置SSH服务
在Windows电脑上启动并配置SSH服务
6965 0
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
501 2
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1523 9
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
536 8
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
319 12
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值