jenkins rsync提示Host key verification failed

注:本文为自己学习使用,如有问题欢迎在评论区留言~么么哒

1、第一步

1、 在 .ssh目录下添加config文件,cd ~/.ssh 键入

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
2、删除 .ssh/know_hosts中对应ip的相关rsa信息

2、如果"Permission denied

首先在服务器本地测试ssh 127.0.0.1,如果可以那就是防火墙的问题。网上很多解决方法,这里不在写,很好解决。

若本地连接有问题,首先打开配置文件sshd_config寻找问题(vim /etc/ssh/sshd_config)。这里简单总结几个必须要修改的配置:

RSAAuthentication yes
PubkeyAuthentication yes #这两项为打开公钥模式
AuthorizedKeysFile .ssh/authorized_keys #配置公钥记录文件
PasswordAuthentication yes #打开密码验证模式

具体:
1、chmod 600/etc/ssh/sshd_config
2、vi /etc/ssh/sshd_config
3、将下面配置的注释放开:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4、vi authorized_keys
追加了本机的id_rsa.pub内容
id_rsa.pub目录:~/.ssh/id_rsa.pub

3、如果不能切换到jenkins

由于某种原因,你想login为jenkins,你可以这样做: sudo su -s /bin/bash jenkins
如果想要切换到root: su -
你需要修改 / etc / passwd 允许用户jenkins login:应该有类似/ bin / bash或/ bin / sh ,当然不是/ bin / false在行尾。如果不是你需要修改

4、现在可以具体操作了

1、chmod 600 /etc/sudoers
2、visudo
添加以下内容:
root ALL=(ALL) ALL # 原有的
jenkins ALL=(ALL) NOPASSWD:/usr/bin/ssh,/usr/bin/rsync # 新增的

中间的空隙不是空格,而是tab,命令和命令之间要用逗号,保存退出后,将权限改为440,而不是400,最后用visudo -c检查语法是否出错.

3、# 给jenkins生成密钥对:在jenkins用户下

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave主机ip

ssh root@slave主机ip
如图:
jenkins rsync提示Host key verification failed_第1张图片
4、 此时是完成了第二步,但还没有操作第一步,在文件末尾添加一行,就这么一行就有很多要注意的地方,首先修改文件权限为600,然后用viduso去修改文件,中间的空隙不是空格,而是tab,命令和命令之间要用逗号,保存退出后,将权限改为440,而不是400,最后用visudo -c检查语法是否出错.
visudo后加进去这些:

root ALL=(ALL) ALL # 原有的
jenkins ALL=(ALL) NOPASSWD:/usr/bin/ssh,/usr/bin/rsync # 新增的
jenkins rsync提示Host key verification failed_第2张图片

5、补充:
需要保证jenkins中使用的是jenkins用户:
进去jenkins——》Manage Jekins——》Status Information——》System Information——》user.name 为jenkins表示使用的jenkins用户

5、补充小知识

配置SSH免密码登录
(1)输入“ssh-keygen -t rsa”,接着按三次“Enter”键。

生成私有密钥id_rsa和公有密钥id_rsa.pub两个文件。
ssh-keygen用来生成RSA类型的密钥以及管理该密钥,参数“-”用于指定要创建的SSH密钥的类型为RSA
jenkins rsync提示Host key verification failed_第3张图片

(2)用 ssh-copy-id 将公钥复制到远程机器中。

ssh-copy-id -i /root/.ssh/id_rsa.pub master

//依次输入yes, root用户的密码

ssh-copy-id -i /root/.ssh/id_rsa.pub slave1

//依次输入yes, root用户的密码

ssh-copy-id -i /root/.ssh/id_rsa.pub slave2

//依次输入yes, root用户的密码

ssh-copy-id -i /root/.ssh/id_rsa.pub slave3

//依次输入yes, root用户的密码

(3)验证SSH是否能够无密钥登录

在master下分别输入:ssh slave1、ssh slave2、ssh slave3

如图所示即配置SSH免密码登录成功。
jenkins rsync提示Host key verification failed_第4张图片
常见问题的解决途径:

1.用 ssh-copy-id 将公钥复制到远程机器中时,master 应为自己的主机名。

查看自己主机名为: hostname

2.查看是否IP地址有错误:

(1)命令"ssh root@主机或节点的IP地址"(主机用主机IP,节点用节点IP)

例如我个人的主机IP:ssh [email protected]

(2)命令"vi /etc/hosts"检查是否之前写错主机和各个节点的IP,如有错误尽快修改正确的对应IP。

3.若最终没发现问题,无法解决,建议清楚所有的节点和主虚拟机,重新开始配置,文件改写需谨慎,写错不易找出问题

你可能感兴趣的:(upupup,jenkins,运维)