+
80
-

如果自动化实现1000台服务器之间相互免密ssh登录?

如果自动化实现1000台服务器之间相互免密ssh登录?


网友回复

+
0
-

使用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连接,确认无密码即可登录到所有配置的服务器。
我知道答案,我要回答