ansible 一键配置用户SSH免密登录
·
#前提:root用户已完成密钥认证
---
- name: Set up SSH access for specific user
hosts: all # 目标主机组,可以在执行时通过 -l 参数指定
gather_facts: no
vars:
target_user: "your_user" # 要配置的目标用户
ssh_pub_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." # 要添加的公钥内容
tasks:
- name: Check if target user exists
become: yes
register: user_exists
command: "id -u {{ target_user }}"
ignore_errors: yes
changed_when: false
- name: Fail if user does not exist
fail:
msg: "Target user {{ target_user }} does not exist on the system"
when: user_exists.rc != 0
- name: Create .ssh directory for target user
become: yes
become_user: "{{ target_user }}"
file:
path: "/home/{{ target_user }}/.ssh"
state: directory
mode: '0700'
owner: "{{ target_user }}"
group: "{{ target_user }}"
- name: Set authorized_keys for target user
become: yes
become_user: "{{ target_user }}"
copy:
dest: "/home/{{ target_user }}/.ssh/authorized_keys"
content: "{{ ssh_pub_key }}\n"
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: '0600'
ansible-playbook -i your_inventory_file setup_user_ssh.yml -u root -k
更多推荐
所有评论(0)