一、无需输入密码一条命令连接到指定服务器,更安全的访问后端服务器,防止恶意连接
1.管理端 创建密钥对信息
-
- ssh-keygen -t dsa
- ll /root/.ssh (查看是否创建成功)
2.管理端 分发公钥信息
-
- ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected](目标服务器地址)
-
ssh-copy-id 命令原理
01. ssh和远程主机连接
02. 将公钥文件传输到远程主机, /root/.ssh/
将公钥文件内容保存到/root/.ssh/authorized_keys(600)(只root用户可看)
二、脚本分发多台主机公钥(不用ansible 之前脚本编写)
1.忽略输入确认信息:
-
- ssh -o StrictHostKeyChecking=no
2.忽略输入密码信息:
-
- yum install -y sshpass
- sshpass -pxxxxx(root密码) ssh xxx.xxx.xxx.xxx(服务器IP地址信息)
-
脚本编写:
-
#!/bin/bash
. /etc/init.d/functionsfor ip in {7,31,41}
do
echo "====================172.16.1.$ip start fenfa key===================="
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no 172.16.1.$ip &>/dev/null
if [ $? -eq 0 ]
then
echo "公钥分发成功" /bin/true
echo ""
else
echo "公钥分发失败" /bin/false
echo ""
fi
done
-