sshd的简介及环境搭建
一.Openssh的功能
一、基本信息
1、sshd服务的用途
作用:可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell ===>ssh ##客户端叫ssh
Secure SHell daemon ===>sshd ##服务端sshd
2、安装包
openssh-server
3、主配置文件地址
/etc/ssh/sshd_conf
4、默认端口
22
5、客户端命令
ssh
二.ssh
一、实验环境搭建
开启两台虚拟机
一台主机名为ck1 172.25.42.1 -->客户端(连接别人)
一台主机名为ck2 172.25.42.2 -->服务端(别别人连接)
二、ssh连接
1、删除ck1和ck2主机的公钥和私钥的文件,便于观察实验效果
rm -fr /root/.ssh
2、ck1主机对ck2进行连接
[root@ck1 ~] ssh -l root 172.25.42.2
登陆成功
3、在ck1主机里有ck2主机发过来的公钥,可以在ck1文件里查看到公钥
4、此时ck2主机持有私密钥匙,每次面对ck1的连接时都会对ck1主机的连接进行身份验证
5、当删除ck2主机的密钥文件后,再用ck1主机连接会出现私钥和公钥不匹配的情况。
ck2主机删除密钥文件
ck1主机连接时发现问题
6、在ck1主机中删除报错提示的内容
7、再次重新建立连接即可
三、ssh 常用参数
-l | 指定登陆用户 |
---|---|
-i | 指定私钥 |
-X | 开启图形 |
-f | 后台运行 |
-o | 指定连接参数,ssh -l root@172.25.254.x -o “StrictHostKeyChecking=no” 首次连接不许要输入yes |
-t | 指定连接跳板ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.105 |
三.sshd key认证
一、认证类型
二、对称加密
加密和解密是同一串字符
容易泄漏
可暴力破解
容易遗忘
三、非对称加密
加密用公钥,解密用私钥
不会被盗用
攻击者无法通过无密钥方式登陆服务器
四、生成非对称加密密钥并进行加密连接
1、在ck2主机生成非对称密钥对
2、用生成密钥文件里面的公钥给ck2主机的root用户加密
3、可以在/root/.ssh文件里看到认证的密钥
authorized_keys是存放公钥的地址,类似于上锁的地址
known_hosts是机器本身ssh服务自带的记录ip等登陆信息的文件
4、可以观察到公钥加密就是把公钥id_rsa.pub的2文件内容放在用户/.ssh/authorized_keys的文件里
5、修改服务器的连接方式进行设置
虽然已经加密了,但客户端还可以通过原有的ssh对称密钥认证方式进行认证。因此为了看到我们操作的效果,需要在服务器端修改sshd服务的配置文件,关闭原来的PasswordAuthentication认证方式(注意:每次对sshd服务的配置文件进行修改后,必须要重启sshd服务才能使修改生效)
[root@ck2 .ssh] vim /etc/ssh/sshd_config 图1、修改服务器的ssh认证文件
[root@ck2 .ssh] systemctl restart sshd 重启ssh服务
6、此时用ck1主机去连接ck2主机发现连接失败(达到效果)
7、将ck2主机生成的私钥匙发送到ck1存放私钥的地址
[root@ck2 .ssh] scp /root/.ssh/id_rsa root@172.25.42.1:/root/.ssh/id_rsa
在ck1主机里查看到私钥
8、ck1主机再次连接尝试ck2,发现成功
用第一步设置非对称加密钥匙时设置的密码进行连接即可
如果之前设置密码为空,那么此时直接连接,不需要密码
四.sshd 安全优化参数详解
1、ck2关闭系统防护,便于测试
setenforce 0 关闭加强级防火墙
systemctl disable --now firewalld 关闭防火墙
2、访问端口设置配置
ck2设定新端口为2222
[root@ck2 .ssh]# vim /etc/ssh/sshd_config
[root@ck2 .ssh]# systemctl restart sshd
发现直接连接不行、必须 +p 加端口号
[root@ck1 ~] ssh -l root 172.25.42.2 -p 2222
3、PermitRootLogin yes|no #对超级用户登陆是否禁止
修改配置文件,将之前的端口改回原始的,并禁止超级用户登陆
[root@ck2 .ssh] vim /etc/ssh/sshd_config
[root@ck2 .ssh] systemctl restart sshd
ck1登陆时发现失败
4、PasswordAuthentication yes|no #是否开启原始密码认证方式
[root@ck2 .ssh] vim /etc/ssh/sshd_config
[root@ck2 .ssh] systemctl restart sshd
5、AllowUsers #用户白名单
在白名单里面的用户westos可以实现登陆,不在白名单里面的用户westos2登陆被拒绝
6、DenyUsers #用户黑名单