SSH远程连接的方式
基于口令的方式进行远程连接 连接比较麻烦 连接不太安全
基于秘钥的方式进行远程连接 连接方便 连接比较安全
基于秘钥方式连接过程(原理)
- 客户端(管理端) 执行命令创建秘钥对
- 客户端(管理端) 建立远程连接(口令),发送公钥信息
- 客户端(管理端) 再次建立远程连接
- 服务端(被管理端) 发送公钥质询信息(你要是能打开我的锁头吗)
- 客户端(管理端) 处理公钥质询信息(钥匙将锁头打开),将质询结果返回给服务端
- 服务端(被管理端) 接收到质询结果,建立好远程连接
SSH实现基于密钥连接的部署步骤
#step1 管理端创建密钥对信息
#一路按enter即可
#step2 管理端分发公钥
ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.17.1.101
#1.需要输入yes/no 确认是否接收服务端公钥信息
#2.需要输入服务端密码 确认登录用户密码信息
#step3 远程连接测试
ssh root@172.17.1.101
如何批量管理多台机器
- 批量分发公钥实现ssh基于密钥连接
#step1 安装sshpass
#sshpass - noninteractive ssh password provider 免交互提供密码
yum -y install sshpass
#step2 解决分发服务器公钥信息需要客户端确认
ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41 "-o
StrictHostKeyChecking=no"
#编写脚本
#!/bin/bash
for ip in `cat /server/scripts/iplist`
do
echo "host $ip start distribute"
sshpass -p1 ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip "-o StrictHostKeyChecking=no" &>/dev/null
if [ $? -eq 0 ];then
echo "host $ip distribute success"
fi
done
- ssh基于密钥连接批量管理多台机器
#!/bin/bash
CMD=$1
for ip in `cat /server/scripts/iplist`
do
ssh root@$ip $CMD
done
网友评论