linux SSH远程基于密钥连接的实现和应用

2021-01-06  本文已影响0人  相信奇迹德人

SSH远程连接的方式

基于口令的方式进行远程连接 连接比较麻烦 连接不太安全
基于秘钥的方式进行远程连接 连接方便 连接比较安全

基于秘钥方式连接过程(原理)

  1. 客户端(管理端) 执行命令创建秘钥对
  2. 客户端(管理端) 建立远程连接(口令),发送公钥信息
  3. 客户端(管理端) 再次建立远程连接
  4. 服务端(被管理端) 发送公钥质询信息(你要是能打开我的锁头吗)
  5. 客户端(管理端) 处理公钥质询信息(钥匙将锁头打开),将质询结果返回给服务端
  6. 服务端(被管理端) 接收到质询结果,建立好远程连接

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

如何批量管理多台机器

  1. 批量分发公钥实现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
  1. ssh基于密钥连接批量管理多台机器
#!/bin/bash
CMD=$1
for ip in `cat /server/scripts/iplist`
do
ssh root@$ip $CMD
done
上一篇 下一篇

猜你喜欢

热点阅读