ansible配置主机间免密登陆

本文介绍了如何使用Ansible自动化工具生成并分发SSH密钥,以实现多台主机间的免密登录。首先在本地生成RSA密钥对,然后通过Ansible playbook将公钥安装到所有目标主机的authorized_keys文件中,最终实现集群内所有主机间无须手动确认的免密互访。

1.使用ssh-key生成公钥和私钥

只在一台机器上生成秘钥:

ssh-keygen -t rsa -b 2048 -P '' -f  /home/log4x/.ssh/id_rsa

在所有主机上生成秘钥:

ansible all -m shell -a " ssh-keygen -t rsa -b 2048 -P '' -f  /home/log4x/.ssh/id_rsa"

2./etc/ansible/hosts文件内容

3. 执行命令:

 4.编写playbook剧本

# cat ssh.yml
---
- hosts: all
  gather_facts: no
 
  tasks:
  - name: install ssh key
    authorized_key: user=log4x
                    key="{
  
  { lookup('file','/home/log4x/.ssh/id_rsa.pub')}}"
                    state=present

5.执行剧本

ansible-playbook -i /etc/ansible/hosts ssh.yml 

PLAY [all] *******************************************************************************************************************************************************

TASK [install ssh key] *******************************************************************************************************************************************
changed: [log
### 使用Ansible实现大量服务器免密钥认证自动部署 为了使用Ansible实现大批量服务器的无密码部署,需遵循一系列操作流程来确保所有目标机器能通过SSH进行免密访问。这不仅提高了工作效率还增强了安全性。 #### 准备工作 首先,在控制器节点上创建用于身份验证的SSH密钥对[^1]: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 此命令会生成一个新的RSA类型的私钥和公钥文件,默认存储路径为`~/.ssh/id_rsa`及其对应的`.pub`文件。 #### 编写Playbook 接着定义一个名为`setup_ssh_key.yml`的Playbook用来向各台被管理设备推送公共密钥[^4]: ```yaml --- - hosts: all become: yes gather_facts: no tasks: - name: Ensure SSH directory exists on target machines. file: path: ~/.ssh state: directory mode: '0700' - name: Deploy the public key to targets. authorized_key: user: "{{ deploy_user }}" state: present key: "{{ lookup('file', '/path/to/public/key.pub') }}" ``` 这里假设变量`deploy_user`代表要在远程主机上设置免密登录权限的具体用户名;而`/path/to/public/key.pub`则指向本地保存下来的公钥位置。 #### 执行Playbook并检验成果 最后一步就是利用之前准备好的清单(`inventory`)去调用这个新编写的剧本以实施批量配置任务: ```bash ansible-playbook -i inventory setup_ssh_key.yml --ask-become-pass ``` 这条指令将会询问成为超级用户的密码以便于在每台客户端计算机上安装必要的授权键条目。一旦成功执行完毕,则可以通过尝试不带任何参数直接SSH连接至任意一台已处理过的服务器来进行最终确认[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值