linux ssh批量自动互信

本文介绍如何使用Ansible自动化工具实现SSH互信部署。主要内容包括安装epel源、Ansible及配置hosts文件,生成并传输密钥对,最终实现无需密码远程管理多台主机。

做ssh互信的要求

不手动敲yes,和密码... ...

目录

实现思路:

具体操作

# 1. 安装epel源

# 2. 安装ansible

# 3. 修改ansible hosts配置文件

# 4. 生成密钥,并传输

# 5. 测试是否可以远程管理主机


实现思路:

  1. 一台主机生成密钥对儿信息
  2. 配置ssh,不返回提示信息
  3. 连接自己,生成“authorized_keys”
  4. 将.ssh目录通过ansible传给其他主机

具体操作

# 1. 安装epel源

yum -y install epel-release

 

# 2. 安装ansible

yum -y install ansible

 

# 3. 修改ansible hosts配置文件

#     主机多的话,可以用shell生成ansible所需的信息

for i in {1..18}; do echo -e 10.100.40.$i "\t" ansible_ssh_pass=centos; done

#     添加要配置的主机ip和密码

vim /etc/ansible/hosts

10.100.40.1    ansible_ssh_pass=centos

10.100.40.2    ansible_ssh_pass=centos

# ... ... 此处省略一万行

 

 

 

# 4. 生成密钥,并传输

#     注意:连接自己时,需要输入一次密码,之后就是完全自动化了

# vim 01ss.sh
# 变量
# 相关IP前3字符
Host_Net_Ip="10.100.40"

# 不交互,生成密钥对儿
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' -q

# # 远程连接主机,不返回提示信息
echo "StrictHostKeyChecking no" > /root/.ssh/config
echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config

# 第一次连接远程主机,生成~/.ssh/authorized_keys 和 known_hosts
oneself_ip=`ip a | grep ${Host_Net_Ip} | awk '{print $2}' | awk -F/ '{print $1}'`
ssh-copy-id root@${oneself_ip}

# 传输密钥对儿,到需要控制的主机
ansible all -m copy -a "src=/root/.ssh dest=/root/ group=root owner=root"
ansible all -m command -a "chmod 0700 /root/.ssh"
ansible all -m command -a "chmod 0600 /root/.ssh/authorized_keys /root/.ssh/id_rsa"
ansible all -m command -a "chmod 0644 /root/.ssh/id_rsa.pub"

 

# 5. 测试是否可以远程管理主机

ansible all -m ping

 

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值