Jenkins解决Host key verification failed (2)

Jenkins解决Host key verification failed

在这里插入图片描述

分析原因情况

一、用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。

SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。

简单说下它的三种配置值:
StrictHostKeyChecking=no
最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。

StrictHostKeyChecking=ask
默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。

StrictHostKeyChecking=yes
最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。

二、使用 ssh-keygen -R hostname 命令

ssh-keygen -R xxx.xxx.xxx.xxx (服务器ip地址)
目的是清除你当前机器里关于你的远程服务器的缓存和公钥信息,注意是大写的字母“R”。
这里相当于重新配置跟目标主机的链接关系

使用man命令查看下ssh-keygen命令的详细用法

解决问题步骤

1、出错的问题需要初始化操作 - 采用成功

a.jenkins普通用户无法执行某些系统命令;

b.没有为jenkins用户生成过密钥对,也没有将他的公钥拷到目标服务器上.

解决办法:
(1)在安装jenkins后,系统生成了jenkins这个普通用户,但是在/etc/passwd中,他的shell是/bin/false,所以他不能登录系统,也没有家目录;

首先我们修改他的登录权限,将/bin/false改为/bin/bash,切换到jenkins用户,su - jenkins,他的终端显示为-bash-4.2$

jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

(2)生成jenkins用户密钥对

[root@bogon .ssh]# su - jenkins
-bash-4.2$ ssh-keygen -t rsa
回车
# 把公钥传输到目标服务器上
-bash-4.2$ ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa.pub root@192.168.1.1

(3)使用sudo提升普通用户权限

vim /etc/sudoer ,进行修改操作,和visudo操作一样
用visudo 去修改文件,命令和命令之间要用逗号,最后用visudo -c检查语法是否出错.
visudo
root    ALL=(ALL)       ALL  # 原有的
jenkins ALL=(ALL)       NOPASSWD:/usr/bin/ssh,/usr/bin/rsync # 新增的

最后就能够在jenkins中使用command命令执行了

最后不要忘了重启操作

systemctl restart jenkins

2、第二种解决方法 - 未采用

一般这个问题,是你重置过你的服务器后。你再次想访问会出现这个问题。
ssh-keygen -R 你要访问的IP地址

ssh-keygen -R  ip
# Host ip found: line 2 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

3、第三种解决办法 - 未采用

解决方法:

(1) 在 .ssh目录下添加config文件,键入

StrictHostKeyChecking no

UserKnownHostsFile /dev/null

(2)删除 .ssh/know_hosts中对应ip的相关rsa信息

设置authorized_keys 为644

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

4、第四周记录错误信息 - 未采用

(1)go_test 工程 中 /root/.ssh/authorized_keys 中构建机的jenkins 用户的 公钥更新了

(2)直接更新构建机 ssh-keygen -t rsa,公钥信息更新了,重新生成

(3)这期间不用重启sshd ,jenkins

5、记录我在构建机上使用rsync命令同步代码到目标主机失败的原因,并且我手动在构建机运行可以成功 - 采用成功

前提是在root账户里ssh目标主机可成功

原因:root账户的 .ssh中know_hosts中存在目标主机ip记录,但是jenkins账户的.ssh的know_host中不存在目标主机ip记录,因为构建机运行的账户其实是以jenkins运行的,所有之前一直失败。

修改:登录到 jenkins账户,进行 ssh登录验证,将ip相关信息自动加入到known_host中

(1) su - jenkins
(2) cd .ssh
(3) ssh root@ip(目标主机ip)
(4) 不用重启任务主机

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

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

相关文章

Spring中关于事务的一些方方面面

事务隔离级别: 先了解一些事务隔离级别有哪些: 未提交读(Read Uncommitted): 允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed): 只能读取到已经提交的数据。Oracle等多数数据库默…

车载电子电器架构 —— OEM基础技术概念开发流程

车载电子电器架构 —— 基础技术概念开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

vue间的组件通讯

文章目录 父子组件通讯(通过props和$emit)兄弟组件通讯(使用事件总线):跨级组件通讯(使用provide/inject):使用Vuex状态管理:使用$refs引用组件: 父子组件通讯…

广度优先-BFS

介绍 以广度为准&#xff0c;先访问从岔道能直接到达的所有结点&#xff0c;然后再按这些结点被访问顺序访问它们能直接到达的结点&#xff0c;直至全部遍历完。 求矩阵中元素上下左右均为1所组成的块的数目 #include <iostream> #include <queue> using namesp…

写点技术人员离职的心得

离职的心态 人们在辞退或者被辞退都会对原公司抱有意见&#xff0c;因为疫情&#xff0c;公司业务告急&#xff0c;工资发不出来&#xff0c;我也失去了工作。虽然情绪上难免会有波动&#xff0c;但是转念一想&#xff0c;我应该用开心的心态来看待这次辞职&#xff0c;并希望…

Linux之JAVA环境配置jdkTomcatMySQL

目录 一. 安装jdk 1.1 查询是否有jdk 1.2 解压 1.3 配置环境变量 二. 安装Tomcat&#xff08;开机自启动&#xff09; 2.1 解压 2.2 启动tomcat 2.3 防火墙设置 2.4 创建启动脚本&#xff08;设置自启动&#xff0c;服务器开启即启动&#xff09; 三. MySQL安装&#xff08;…

vscode使用restClient实现各种http请求

vscode使用restClient实现各种http请求 一&#xff0c;安装插件 首先&#xff0c;我们要在vscode的扩展中&#xff0c;搜索rest Client&#xff0c;然后安装它&#xff0c;这里我已经安装过了。 安装后&#xff0c;我们就可以使用rest client插件进行http各种操作了。 二&…

Unity接入SQLite (二):SQL常用命令

在上一篇上《Unity接入SQLite (一):SQLite介绍-CSDN博客》中已经介绍了如何在Unity中接入SQLite插件&#xff0c;并且创建了一个db文件。如何进行数据库的读取&#xff0c;其中SQL命令非常重要 1.SQL支持的数据类型 SQL数据类型是用来定义数据库中存储的数据的类型&#xff0…

二分图匹配详解

二分图的原始模型及相关概念 二分图又称作二部图&#xff0c;是图论中的一种特殊模型。 设G(V,E)G(V,E)是一个无向图。 如顶点集V可分割为两个互不相交的子集&#xff08;A, B&#xff09;&#xff0c;并且图中每条边(i&#xff0c;j)所关联的两个顶点 i 和 j 就都分属两个不…

定时任务处理-Spring Task

目录 1 前言 2 cron表达式 2.1 相关概念的介绍 2.2 举个例子(白雪警告) 2.3 使用网站自动生成 3 Spring Task的使用 3.1 导入依赖坐标 3.2 开启任务调度 3.3 自定义定时任务类 1 前言 当我们需要处理一些定时任务的时候就需要用到我们的Spring Task&#xff0c;接下来…

(done) 两个矩阵 “相似” 是什么意思?

参考视频&#xff1a;https://www.bilibili.com/video/BV1zu411673J/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 参考资料&#xff1a;https://baike.baidu.com/item/%E7%9B%B8%E4%BC%BC%E7%9F%A9%E9%98%B5/10369874?frge_a…

算能RISC-V通用云编译飞桨paddlepaddle@openKylin留档

尝试一在riscv里编译飞桨。 先总结&#xff1a; 下载飞桨代码&#xff0c;参照pr修改代码 然后编译 cmake ../ -DWITH_GPUOFF -DWITH_RISCVON make -j 16 TARGETRISCV64_GENERIC 编译好后安装&#xff1a; pip install paddlepaddle-0.0.0-cp38-cp38-linux_riscv64.whl -…

Opencv(C++)学习 ARM上引用opencv报相关头文件找不到

简单问题记录&#xff0c;C 与C互相引用时应该多注意类似问题。 问题描述&#xff1a;在项目中&#xff0c;建立了一个interface.h提供了一个C语言兼容的接口void work()&#xff0c;并在对应的interface.cpp中使用OpenCV完成相关处理实现。在PC端测试时&#xff0c;main.cpp成…

【HTML/CSS/JavaScript-编程指南】

HTML/CSS/JavaScript-编程指南 ■ HTML/CSS/JavaScript简介■ HTML/CSS/JavaScript学习网站■ VScode■ VSCode编写HTML■ VSCode编写CSS■ VSCode编写JavaScript ■ 语法■ HTML语法■ CSS语法■ JavaScript 语法 ■ HTML/CSS/JavaScript简介 HTML&#xff08;全称 Hypertext…

小波变换模拟

小波变换是一种信号处理技术&#xff0c;通过在时间-频率域中使用基于小波的函数进行信号分析。小波变换在处理非平稳信号和图像时特别有用&#xff0c;可以将信号分解为不同频率的成分。它在数据压缩、去噪、特征提取等领域有广泛应用。 MATLAB中提供了用于二维离散小波变换的…

css4浮动+清除浮动

浮动 一.常见网页布局1.三种布局方式2.布局准则 二.浮动&#xff08;float&#xff09;1.好处2.概念3.三大特性4.使用5.常见网页布局模板6.注意点 三.清除浮动1.why2.本质3.语法4.四种way&#xff08;后三个都是给父级添加&#xff09;清除浮动总结 一.常见网页布局 1.三种布局…

终端启动jupyter notebook更换端口

一、问题描述 如果尝试在端口 8889 上启动 Jupyter Notebook 但最终启动在了 8890 端口&#xff0c;这通常意味着 8889 端口已经被占用。要解决这个问题&#xff0c;可以尝试以下几种方法来关闭占用 8889 端口的进程。 1. 查找并终止占用端口的进程 首先&#xff0c;需要找出…

课时45:表达式_表达式_字符串表达式

3.2.3 字符串表达式 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 所谓的字符串表达式&#xff0c;主要是判断 比较运算符 两侧的值的内容是否一致&#xff0c;由于bash属于弱类型语言&#xff0c;所以&#xff0c;默认情况…

【课程作业】提取图中苹果的面积、周长和最小外接矩形的python、matlab和c++代码

提取图中苹果的面积、周长和最小外接矩形 在图像处理中&#xff0c;提取对象的关键属性是常见的任务之一。本文将演示如何使用三种流行的编程语言——Python、Matlab和C&#xff0c;利用相应的图像处理库&#xff08;OpenCV或Matlab内置函数&#xff09;来提取图像中苹果的面积…

Java8 Stream API 详解:流式编程进行数据处理

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…