要使用Ansible建立SSH信任并将公钥分发到各个机器,你可以按照以下步骤进行操作:
# 一直敲回车 ssh-keygen -t rsa
生成SSH密钥对:首先,在管理节点上生成SSH密钥对。可以使用ssh-keygen命令来生成密钥对。例如,运行ssh-keygen -t rsa命令,并按照提示进行操作。这将生成私钥(id_rsa)和公钥(id_rsa.pub)文件。
将公钥分发到各个机器:接下来,你需要将公钥分发到所有要管理的远程机器上。可以使用ssh-copy-id命令来自动完成这个过程。对于每个远程机器,运行以下命令:
ssh-copy-id <用户名>@<远程机器IP地址>
这将自动将公钥复制到远程机器的~/.ssh/authorized_keys文件中,并设置适当的权限。
如果你使用Ansible来管理多个机器,你可以在Ansible的清单文件(通常是/etc/ansible/hosts)中定义所有要管理的远程机器。然后,你可以使用Ansible的authorized_key模块来分发公钥。以下是一个示例的Ansible剧本(playbook),演示如何分发公钥到所有远程机器:
--- - name: 分发SSH公钥到各个机器 hosts: all become: yes tasks: - name: 将SSH公钥添加到远程机器的授权文件中 authorized_key: user: <远程机器上的用户名> state: present key: "{{ lookup('file', '/path/to/local/id_rsa.pub') }}"
在上面的剧本中,你需要将<远程机器上的用户名>替换为实际的用户名,并将/path/to/local/id_rsa.pub替换为本地公钥文件的路径。
运行该剧本后,Ansible将连接到每个远程机器,并将公钥添加到相应用户的~/.ssh/authorized_keys文件中。这样,你就建立了SSH信任,并可以使用SSH密钥对进行无密码登录到各个机器了。
请注意,上述步骤假设你已经配置了Ansible,并且具有足够的权限来执行这些操作。确保在执行任何操作之前,你已经了解了潜在的安全风险,并采取了适当的安全措施来保护你的系统。