ssh

作者: mrwangjian | 来源:发表于2020-02-12 16:31 被阅读0次
    1. 远程管理服务
      SSH 22 安全远程连接方式(加密处理) 可以默认使用root用户登录 互联网远程连接服务器
      Telnet 23 不安全远程连接方式(明文信息) 默认使用普通用户登录 网络设备远程管理

    2. SSH远程连接原理过程

      1. 发送建立连接请求 客户端
      2. 发送公钥确认信息 服务端
      3. 确认公钥信息 客户端
      4. 发送公钥文件信息 服务端 /etc/ssh/ 公钥信息
      5. 接收公钥文件信息 客户端 ~/.ssh/know_hosts
      6. 发送密码确认信息 服务端
      7. 响应密码信息 客户端
      8. 远程连接建立成功 服务端
        数据传输过程会利用公钥和私钥对数据加密和解密
    3. SSH远程连接建立方式
      基于密码(口令)方式 安全性不高
      基于密钥方式 批量管理服务器(ansible),准备环境 免交互远程连接

      1. 管理端 发送连接请求
      2. 被管理端 基于口令进行验证
      3. 管理端 创建密钥对,并发送公钥信息
      4. 管理端 发送连接请求
      5. 被管理端 发送公钥质询信息
      6. 管理端 响应公钥质询信息
      7. 被管理端 接收响应信息,远程连接建立

      基于密钥方式实现方法:m01
      第一个历程:创建密钥对信息
      ssh-keygen -t dsa
      [root@m01 ~]# ll /root/.ssh/id_dsa*
      -rw------- 1 root root 668 Jun 22 16:13 /root/.ssh/id_dsa
      -rw-r--r-- 1 root root 598 Jun 22 16:13 /root/.ssh/id_dsa.pub

      第二个历程:将公钥信息进行发送
      ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.7

      分发密钥原理:

      1. 管理端: 创建密钥对,保存好私钥
      2. 管理端: 将公钥进行发送
      3. 被管理端:接收到公钥 保存 ~/.ssh/authorized_keys (600)
        /etc/ssh/sshd_confing

      如何实现批量分发公钥信息 (7 31 41)
      编写脚本:centos7 免交互 批量创建用户并设置初始密码
      问题:可以出现交互的地方

      1. 第一次ssh连接,会有yes或no提示信息
        解决:利用ssh 参数解决
        ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.7 -o StrictHostKeyChecking=no

      2. 每次连接,分发公钥前都需要输入密码信息
        yum install -y sshpass
        sshpass - noninteractive ssh password provider
        ssh提供密码信息,采用免交互方式
        sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.7 -o StrictHostKeyChecking=no

      编写分发公钥脚本:

      !/bin/bash

      for 变量 in 循环变化的信息

      do

      循环执行的动作

      done

      if [ 资本 >= 1000 ] 单分支if语句

      then 然后

      买豪宅 豪车 美女

      fi

      if [ 资本 >= 1000 ] 双分支if语句

      then 然后

      买豪宅 豪车 美女

      else 否则

      继续努力工作攒钱

      fi

        for ip in {7,31,41}
        do 
           echo "=============== fenfa pub_key with 172.16.1.$ip =============== "
           sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.$ip -o StrictHostKeyChecking=no &>/dev/null
           if [ $? -eq 0 ]
           then
              echo "公钥信息分发成功 [ok]"  
              echo ""         
           else
              echo "公钥信息分发失败 [failed]"
              echo ""
           fi
        done
    
    等于     -eq
    大于     -gt
    小于     -lt
    大于等于 -ge
    小于等于 -le
    不等于   -ne
    
    1. 远程服务配置文件参数说明
      vim /etc/ssh/sshd_config

      Port 22 --- 默认端口号信息

      ListenAddress 0.0.0.0 --- 指定监听地址信息

                                  指定网卡可以请求访问请求
                                  监听地址必须是本地网卡上配置的地址
      

      PermitRootLogin yes --- 禁止root用户远程连接 root暴力破解

      PermitEmptyPasswords no --- 禁止用户使用空密码登录

      UseDNS no --- 是否进行DNS反向解析 已知IP地址解析域名
      GSSAPIAuthentication no --- 特殊认证方式

    2. SSH远程入侵防范思路
      http://phenixikki.blog.51cto.com/7572938/1546669

      1. 尽量使用SSH密钥方式进行登录
      2. 尽量所有主机不要配置外网网卡 负载均衡有外网
      3. 进行防火墙安全策略控制 iptables/firewalld
        禁止所有人 s:0.0.0.0 --不能访问--- 10.0.0.5/6 22端口
      4. 在ssh配置文件中只监听内网IP地址
      5. 对系统重要数据信息进行监控 md5sum -- zabbix监控项 /etc/passwd
      6. 对系统重要目录数据进行加锁 chattr +i /xxx
    3. 批量管理服务 ansible
      作用说明:

      1. 批量管理操作主机 修改网卡信息 修改服务配置文件
      2. 批量部署服务
      3. 批量分发数据文件 代码上线 web服务器(集群)
      4. 批量收集系统信息
        特点说明:
      5. 部署安装简单
        不需要启动服务 不需要编写配置文件 不需要再客户端进行任何设置
      6. 应用配置方便(功能强大 模块)
    4. 批量管理软件部署
      第一个历程:远程ssh基于密钥方式连接
      第二个历程:在m01主机上安装ansible软件
      yum install -y ansible --- epel源

    5. 课程知识总结:
      1)网络重要协议原理 ARP
      2)IP地址概念说明 IP地址组成 IP地址分类(NAT) IP地址子网划分
      3)企业上网原理 vlan trunk
      4)虚拟主机上网原理 (nat 桥接 仅主机 --- 网络问题排错)
      5)系统路由配置方法(静态默认路由配置 静态网段路由配置 静态主机路由配置)
      6)SSH远程连接服务
      SSH远程连接通讯原理 (私钥 公钥) --- https 私钥 公钥
      SSH远程基于密钥连接 命令 脚本
      7)SSH服务配置文件
      监听地址
      8)SSH防范入侵方法
      9)简单介绍ansible软件作用和特点
      10)软件安装部署方式

    相关文章

      网友评论

          本文标题:ssh

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