gpt4 book ai didi

linux - 如何在 Linux 中为另一个用户生成 ssh key ,并在 ansible 中自动生成

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:26 25 4
gpt4 key购买 nike

我正在通过 shell 配置程序配置 vagrant box,它反过来对 localhost 执行 ansible play。我正在使用以下剧本

---
- name: Provision vagrant1 box
hosts: localhost
tasks:
- name: Install nmap
apt: name=nmap state=latest update_cache=yes

- name: Install sshpass
apt: name=sshpass state=latest update_cache=yes

- name: Generate ssh key
shell: "ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''"

现在的问题是,shell 配置程序,因此 ansible play 是以 root 身份执行的,因为我必须为用户 vagrant 和可能的其他用户设置 ssh key 。

此外,自动创建 ssh key 并将公钥复制到已知主机感觉笨重且脆弱,因为可能会信任服务器提示和密码输入提示,并且密码可能会有所不同。为不同用户自动创建 ssh key 并将公钥复制到 ansible 中未知数量的远程服务器的最佳方法是什么?

对于那些好奇的人,我的目的是使用 nmap 查找网络上的所有远程服务器,并使用 sshpass 提供密码以帮助自动化 ssh-copy-id。

最佳答案

在 Ansible playbook 中为用户生成 SSH key 的正确方法是使用 the user modulegenerate_ssh_key 关键字。 。这样, key 就会以正确的权限生成,并且现有 key 不会被覆盖(除非您希望如此):

---
- hosts: your_host
- user:
...
generate_ssh_key=yes
...

关于linux - 如何在 Linux 中为另一个用户生成 ssh key ,并在 ansible 中自动生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com