使用Ansible可实现多台服务器之间免密登录
前提:安装Ansible在指定服务器上运行以下命令以安装Ansible:
yum -y install epel-release && yum -y install ansible
第一步:生成SSH密钥对在该服务器上执行以下命令创建密钥对:
ssh-keygen
第二步:配置密钥权限复制公钥为authorized_keys并设置600权限:
cp id_rsa.pub authorized_keys && chmod 600 authorized_keys
第三步:配置Ansible以跳过SSH指纹验证在/etc/ansible/ansible.cfg文件中编辑以下内容,确保SSH不会在首次连接时请求指纹验证:host_key_checking = False
第四步:设置Ansible的主机清单文件编辑/etc/ansible/hosts,添加一个名为web的组,并列出要连接的服务器的IP、用户和密码:
[web] 192.168.x.x ansible_ssh_user=root ansible_ssh_pass=your_password第五步:批量创建远程服务器的.ssh目录并设置权限运行Ansible命令,在所有Web服务器上创建.ssh目录并配置正确的权限:
ansible web -m file -a "path=/root/.ssh state=directory mode=0700"
第六步:批量复制authorized_keys到远端服务器借助Ansible, 将本地的authorized_keys文件复制到远端服务器的/root/.ssh/目录,并设置权限:
ansible web -m copy -a "src=/root/.ssh/authorized_keys dest=/root/.ssh mode=0600"
第七步:将私钥id_rsa复制到远端服务器将私钥文件也复制到服务器的/root/.ssh/目录下,并严格设置权限:
ansible web -m copy -a "src=/root/.ssh/id_rsa dest=/root/.ssh mode=0600"
完成以上步骤后,测试SSH连接,确认无密码即可登录到所有配置的服务器。网友回复