ansible 批量配置ssh公私钥免密登录

  1. 将服务器的IP及密码写入文件

vim  secret.txt
192.168.3.10 123123
192.168.3.2 123123
  1. 编写分发公钥分发脚本

vim  fenfa.sh
#!/bin/bash
rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
Key_Path=~/.ssh/id_rsa.pub
cat /root/secret.txt | while read line
do
        ip=$(echo "$line" |awk -F' '  '{print $1}')
        SSH_Pass=$(echo "$line" |awk -F' '  '{print $2}')
        sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o 
StrictHostKeyChecking=no" $ip
done
# 非交互式分发公钥命令需要用sshpass指定ssh密码,通过-o St
rictHostKeyChecking=no 跳过ssh连接确认信息
  1. 执行脚本

sh  fenfa.sh

回答: 使用ansible批量部署ssh免密登录时,有的节点可以直接免密,有的节点需要密码的原因可能是由于以下几个因素导致的。首先,可能是在ansible主机定义清单中,对于需要密码的节点没有正确配置ansible_ssh_pass参数,导致无法进行免密登录。其次,可能是在被管理端的主机上没有正确配置免密登录钥。在取消免密登录时,需要将钥从被管理端的主机的/root/.ssh/authorized_keys文件中移除。如果免密不生效,可能是由于钥没有正确添加到被管理端的主机上。请确保在执行ssh-keygen命令生成秘钥时,将钥添加到被管理端的主机的/root/.ssh/authorized_keys文件中。 #### 引用[.reference_title] - *1* *2* [ansible批量部署的安装以及常用模块](https://blog.csdn.net/jinxiaopengM/article/details/106451240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Ansible 安装与使用/ssh免密互信-以及解决免密不生效](https://blog.csdn.net/jiangbenchu/article/details/90714585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值