远程管理服务

ssh:远程操作系统、服务器(安全——数据加密-22—默认可以root用户连接)
telnet:远程操作网络设备(不安全——数据明文-23—默认不可以root用户连接)
1、yum install -y telnet-server    #服务端安装telnet服务

2、systemctl start telnet.socket    #建立网络通信,都是以socket为后缀    23为telnet默认端口

3、ssh ip     #客户端连接服务器

4、利用wireshark抓包可以查看具体的数据,跟踪流匹配整个链路

SSH远程管理服务原理

私钥
公钥
1、ll /etc/ssh    #服务端公钥、私钥数据

2、ll ~/.ssh/known_hosts    #客户端保存的密钥数据

原理:
    1、客户端执行远程连接命令
    2、客户端、服务端建立握手
    3、服务端  让客户端确认是否接受服务端的公钥信息(二次连接的时候,就不会再有提示信息了)
    4、客户端   公钥确认,接受公钥数据
    5、服务端   客户端确认登录密码
    6、客户端   密码信息确认
    7、客户端、服务端  建立连接
 
 PS:
    基于密码的方式远程连接:公钥和私钥只能完成数据的加解密
    基于密钥的方式远程连接:公钥和私钥完成数据的加解密+用户的身份认证

SSH远程链接方式——密钥

基于口令的方式远程连接:连接多台服务器时每次都需要输入密码    不安全   (不推荐)

基于密钥的方式远程连接:连接方便    安全
    1、客户端——执行命令进行密钥的创建
    2、客户端——建立连接(口令),发送密钥
    3、客户端——再次建立链接
    4、服务端——发送公钥信息
    5、客户端——发送公钥验证信息

SSH服务配置文件

1、vim /etc/ssh/sshd_config    #进入sshd的配置文件
    port:22    #端口调整,有的配置文件被注释了,但是使用了默认的配置
    ListenAddress 0.0.0.1   #监听地址,0.0.0.0-所有的网卡都能访问    指定的监听地址只能是本地网卡上有的地址
    PermitEmptyPasswords no -不允许空的密码连接
    PermitRootLogin no  ----sudo,建议改为no
    GssAPIAuthtication no   ----关闭此参数,现在不用了已经
    UseDNS  no     #是否开启DNS反向解析功能,建议关闭,否则会影响响应速度
模拟:
    1、将配置文件的地址更改
        sed -i 's#200#61#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
        
    2、查询是否更改成功
        grep 61  /etc/sysconfig/network-scripts/ifcfg-eth[01]
        
    3、删除UUID
        sed -i '/UUID/id'  /etc/sysconfig/network-scripts/ifcfg-eth[01]
        
    4、 hostnamectl set-hostname m01
    5、systemctl restart network
    
    
一、服务端创建密钥对
    ssh-keygen -t dsa 
二、服务端进行密钥分发
    ssh-copy-id -i /root/.ssh/id.rsa.pub root@192...    
    
三、进行远程连接测试       

SSH远程连接安全防范(防止入侵)

案例:https://blog.51cto.com/phenixikki/1546669

1、用密钥登录,不要使用密码登录

2、a、防火墙封闭ssh,指定源ip限制(局域网、信任公网)
   b、开启ssh只监听本地内网ip (配置文件的监听)
   c、尽量不要给服务器分配外网ip
   d、最小化(软件安装-授权)  重要的文件配置成000的权限
   f、不要安装太多的服务(一台服务器)
   e、给重要的文件装上监控(加密数据-指纹),实时的监控指纹
        inotify --监控服务目录
   g、重要文件上锁 chattr +i

SSH服务相关命令

scp   #基于ssh的安全传输数据

sftp   #基于ssh的文件传输

脚本实现公钥的批量分发——堆命令

#!/bin/bash    指定解释器

for ip in {1,2,3}
do
    echo "===================host 192.168.12.$ip pub-key start fenfa=========="
     ssh-copy-id -i /root/.ssh/id.rsa.pub root@192...$ip &> /dev/null
     echo "host 192.168.12.$ip fenfa success "
      echo "===================host 192.168.12.$ip pub-key start fenfa end=========="
      echo ""
done
问题:有交互过程
    1、需要确认yes或者no
        ssh-copy-id -i /root/.ssh/id.rsa.pub root@192... "-o StrictHostKeyChecking=no"   #不要每次提示
        
    2、需要输入密码:下载软件 yum install -y sshpass
        sshpass -p123456 ssh-copy-id -i /root/.ssh/id.rsa.pub root@192...   #免交互分发命令 
   
    3、服务端ssh端口号发生变化,如何分发公钥
         ssh-copy-id -i /root/.ssh/id.rsa.pub root@192... -p '52113' "-o StrictHostKeyChecking=no"   

撸猫鼠
10 声望1 粉丝