一、远程管理服务管理

1、ssh:安全的远程连接,数据信息是加密的,22 ssh服务默认可以root用户远程连接
2、TELNET:不安全的远程连接,数据信息是明文的,23 telnet服务默认不可以让root用户远程连接
需要在被连接端安装telnet-server
yum install -y telnet-server
systemctl start telnet.socket

二、基本工作原理

2.1 连接过程

私钥:钥匙
公钥:锁头
第一步、客户端 执行远程连接命令
第二步、客户端 服务端 建立三次握手过程
第三步、服务端 让客户端进行确认是否接收服务端公钥信息
第四步、客户端 进行公钥确认,接收到公钥信息
第五步、服务端 让客户端确认登录用户密码信息
第六步、客户端 进行密码信息确认
第七步、客户端 服务端 远程连接建立成功

公私钥作用:
1、对数据信息进行加密处理
2、对用户身份进行确认
基于密码的方式进行远程连接:公钥和私钥只能完成数据加密过程
基于私钥的方式进行远程连接:公钥和私钥可以完成身份认证工作
SSH远程连接方式:
a、基于口令的方式进行远程连接 比较麻烦,连接不安全
b、基于密钥的方式进行远程连接 连接方便,连接安全

2.2 配置文件说明

  1. vim /etc/ssh/sshd_config<br />#Port 22 ---修改服务端口信息<br />#ListenAddress 0.0.0.0 ---监听地址,指定一块网卡能够接收远程访问请求<br />#PermitRootLogin yes ---是否允许root账户登录,一般企业建议改为no<br />#PermitEmptyPasswords no ---是否允许空密码登录,默认不允许<br />GSSAPIAuthentication no ---是否开启GSSAPI认证功能,不用的时候关闭,现在基本不用<br />UseDNS no ---是否开启反向DNS解析功能,建议进行关闭

三、基于密钥方式连接过程

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

四、SSH基于密钥连接的部署步骤

准备工作
准备好一台管理服务器
第一步、在管理端创建密钥对信息
image.png

[root@m01 ~]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:69nPXsG/QdVGszatMaZ/Up4vnRFcwDAWf+fSaLA07WE root@m01
The key's randomart image is:
+---[DSA 1024]----+
|            =+.o.|
|           . +..*|
|            + E+O|
|           . X.&+|
|        S   o O.=|
|         .   o.B.|
|        .     ++*|
|       . o . ..+=|
|        o .o+  o.|
+----[SHA256]-----+

第二步、公钥分发
ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.0.0.41
image.png
第三步、进行远程连接测试
ssh 172.16.1.41 —-不用输入密码信息可以直接连接
image.png

五、非交互状态完成公钥分发

不用交互模式下输入密码完成公钥分发
第一步、下载安装软件
yum install -y sshpass
第二步、执行免交互方式分发公钥命令
sshpass -pabc123.. ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41
如何不要输入连接yes或者no的确认信息
ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41 “-o StrictHostKeyChecking=no”
服务端口号发生变化,如何进行批量分发公钥
sshpass -pabc123.. ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41 -p 2222 “-o StrictHostKeyChecking=no”

六、批量分、发管理脚本

[root@m01 scripts]# cat dis_ssh_pupkey.sh 
#!/bin/bash
for ip in `cat /root/host_ip.txt`
do
    echo "==============================$ip start dirtribute the ssh_pub_key=============================="
    sshpass -pabc123.. ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip "-o StrictHostKeyChecking=no" &>/dev/null
    if [ $? -eq 0 ];then
        echo "Distribute Successfully!!!"
    else
        echo "Distribute False!!!"
    fi
    echo "==============================$ip dirtribute the ssh_pub_key end  =============================="
    ssh root@$ip hostname
    if [ $? -eq 0 ];then 
                echo "Connection Checking $ip Successfully!!!"
        else 
                echo " Connection Checkding $ip False!!!"
        fi
done

结合上面的密钥验证可通过脚本实现批量管理

[root@m01 scripts]# cat hosts_manage.sh 
#!/bin/bash
CMD=$1
for ip in `cat /root/host_ip.txt`
do
    ssh root@$ip $CMD
done

七、SSH防范入侵

1、用密钥登录,不用密码登录
2、牤牛阵法:解决SSH安全问题
a、防火墙封闭SSH,指定源IP限制(局域网,信任公网)
b、开启SSH只监听本地内网IP(ListenAddress 172.16.1.61)
3、尽量不给服务器外网IP
4、最小化(软件安装、授权)
5、给系统的重要文件或命令做一个指纹
/etc/passwd md5sum 监控
inotify /bin 监控
6、给他锁上,chattr +i

八、sftp常用命令

sftp 172.16.1.41
ls 查看远程ftp服务器信息
cd 切换远程ftp服务器目录
lls 查看本地信息
lcd 切换本地目录
get 下载信息
put 上传信息
help 查看命令帮组
bye 退出ftp连接