远程管理服务
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"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。