Jenkins 持续集成:Linux 系统 两台机器互相免密登录

背景知识

我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。

此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。

最后,远程系统的sshd会得出结论我们拥有匹配的private key允许我们登录

上述方法在 Linux 系统上大量使用,比如 Jenkins 构建持续集成时,需要远程登录另外的若干台机器将打包的结果复制,此时就需要免密登录。

下面开始介绍,两台 Linux 系统实现免密登录的步骤及条件。

如果你想学习Jenkins,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的Jenkins教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386  

Jenkins集成电子邮件,Allure以及企微通知实战_哔哩哔哩_bilibili

一、机器A 免密登录 机器B 原理

1、首先在 机器A 上生成一对秘钥(ssh-keygen)将公钥拷贝到 机器B,重命名 authorized_keys;

2、机器A 向 机器B 发送一个连接请求,信息包括用户名、ip;

3、机器B 接到请求,会从 authorized_keys 中查找,是否有相同的用户名、ip,如果有 机器B 会随机生成一个字符串;

4、然后使用公钥进行加密,再发送个 机器A;

5、机器A 接到 机器B 发来的信息后,会使用私钥进行解密,然后将解密后的字符串发送给 机器B;

6、机器B 接到 机器A 发来的信息后,会给先前生成的字符串进行比对,如果一直,则允许免密登录。

二、Centos7 默认安装了 ssh服务

三、启动 ssh 服务

# 查看 ssh 状态
systemctl status sshd
# 启动 ssh
systemctl start sshd
# 停止 ssh
systemctl stop sshd

四、serverA 生成秘钥

[root@localhost ~]# ssh-keygen

CentOS7 默认使用RSA加密算法生成密钥对,保存在~/.ssh目录下的id_rsa(私钥)和id_rsa.pub(公钥)。也可以使用“-t DSA”参数指定为DSA算法,对应文件为id_dsa和id_dsa.pub,密钥对生成过程会提示输入私钥加密密码,可以直接回车不使用密码保护。

五、移动 id_rsa.pub 文件

1、将 机器A ~/.ssh目录中的 id_rsa.pub 这个文件拷贝到你要登录的 机器B 的~/.ssh目录中

scp ~/.ssh/id_rsa.pub 192.168.0.101:~/.ssh/

 2、然后在 机器B 运行以下命令来将公钥导入到~/.ssh/authorized_keys这个文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3、另外要注意请务必要将服务器上,这是linux的安全要求,如果权限不对,自动登录将不会生效

~/.ssh权限设置为700

chmod -R 777 ~/.ssh

~/.ssh/authorized_keys的权限设置为600

chmod -R 600 ~/.ssh/authorized_keys

六、验证免密登录

ssh 机器B的ip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5553.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MeterSphere(基于JMeter)常用断言汇总

JSONPath方式断言 {"success": true,"errCode": null,"errMessage": null,"statDate":"6月28日","data": [{"name": "人口","value": "1","unit": "万人…

安装 Prometheus 指标存储 观测 dubbo /windows_exporter指标 windows 版本 其他系统换个语法思路一样

目录 下载 Prometheus 访问Prometheus Targets 发现服务 对应的 dubbo 指标就出来了 Dubbo脚手架生成个最简单的项目 导入 Prometheus 相关包 或者使用这个包即可 启动后就自动上报指标了 Windows_exporter or node_exporter 端口 9182 Prometheus 配置 windows_exp…

『手撕 Mybatis 源码』11 - 二级缓存

二级缓存 概述 启用二级缓存需要进行三步配置 开启映射器配置文件中的缓存配置 <settings><!--cacheEnabled值默认就为true--><setting name"cacheEnabled" value"true"/></settings>在需要使用二级缓存的 Mapper 配置文件中配…

【嵌入式Qt开发入门】在Ubuntu下编写C++

在 Ubuntu 上面编写 C&#xff0c;本文内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一 个 C源文件。通过编写最简单的示例“Hello,World&#xff01;”。带领大家学习如何在 Ubuntu 终端下编辑和编译 C。这里要求大家会在 Ubuntu 上使用 vi/vim&#xff0c;也就是要求大…

迪赛智慧数——柱状图(象形动态图):高考填报专业考虑的因素

效果图 填报志愿是高考后的一大重要环节&#xff0c;你的职业生涯就在这里起航了。那么&#xff0c;应该怎么填报志愿呢&#xff1f;高考填报专业考虑的因素很多&#xff0c;过半的人会考虑专业就业前景及薪资&#xff0c;其次是个人兴趣和是否为双一流建设学科。 数据源&…

Andriod 开发 SearchView默认弹出软键盘

SearchView默认弹出软键盘&#xff0c;遮挡了主界面 这很明显是SearchView是默认自动获取了焦点&#xff0c;所以上网搜了一下如何清除焦点&#xff1a; SearchView searchView getActivity().findViewById(R.id.searchViewSearchbar); searchView.clearFocus(); 然而没用&…

Android 安卓开发语言kotlin与Java该如何选择

一、介绍 如今在Android开发中&#xff0c;应用层开发语言主要是Java和Kotlin&#xff0c;Kotlin是后来加入的&#xff0c;主导的语言还是Java。kotlin的加入仿佛让会kotlin语言的开发者更屌一些&#xff0c;其实不然。 有人说kotlin的引入是解决开发者复杂的逻辑&#xff0c;并…

【xss漏洞-svg标签】详解svg标签+触发XSS

目录 一、理论知识 SVG标签的使用 二、实战部分 一、理论知识 SVG标签的使用 代码中的SVG标签和onload事件本身并不依赖于其他特定的标签来触发弹窗。无论它们被放置在哪个标签内&#xff0c;只要浏览器解析并加载了这个SVG标签&#xff0c;onload事件就会被触发。 注&am…

GO web开发

go web开发 简介 go官方提供了http服务&#xff0c;但它的功能很简单。 这里介绍web开发中的一些问题&#xff0c;和web框架&#xff08;echo&#xff09;怎么解决这些问题 &#xff0c;对于具体的echo的使用&#xff0c;可看官网 官网&#xff1a; https://echo.labstack…

Redis 高可用 RDB AOF

---------------------- Redis 高可用 ---------------------------------------- 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境…

MATLAB App Designer基础教程 Matlab GUI入门(一)

MATLAB GUI入门 第一天 学习传送门&#xff1a; 【MATLAB App Designer基础教程Matlab GUI界面设计&#xff08;全集更新完毕-用户界面设计appdesigner&#xff08;中文&#xff09;Matlab Gui教程】 https://www.bilibili.com/video/BV16f4y147x9/?p2&share_sourcecopy_…

区块链运行原理

文章目录 前言区块链的结构区块链的交易过程区块链的共识机制区块链交易存在的问题特性总结 前言 上文《认识区块链》中可以知道区块链是一个通过各种加密算法、共识机制以及其他技术可以实现一个点对点的电子现金系统&#xff0c;从而达到去第三方的效果&#xff08;通常称之…