美文网首页
linux SSH远程基于密钥连接的实现和应用

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

作者: 相信奇迹德人 | 来源:发表于2021-01-06 21:41 被阅读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
    

    相关文章

      网友评论

          本文标题:linux SSH远程基于密钥连接的实现和应用

          本文链接:https://www.haomeiwen.com/subject/segooktx.html