1.sshd简介
SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。
想要使用SSH协议来远程管理LInux系统,则需要部署sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种验证的方法:
基于口令的验证----用账户和密码进行验证登录
基于密钥的验证----需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较,该方式相对更安全。
sshd=secure shell
可以通过网络在主机中开机shell的服务
客户端软件<C-F9>
sshd
连接方式:
ssh username@ip ##文本模式的链接
ssh -X username@ip ##可以在链接成功后开机图形
注意:
第一次链接陌生主机时要建立认证文件
所以会询问是否建立,需要输入yes
再次链接此台主机时,因为已经生成~/.ssh/know_hosts 文件所以不需要再次输入yes
远程复制:
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载
实验:Linux下真机与虚拟机的连接
(1).为方便后续实验先修改主机名 命令为:hostnamectl set-hostname client
修改完成后打开新的shell窗口发现hostname已完成修改。
desktop虚拟机-->clienet
server虚拟机-->server
(2).查看真机ip 命令:ifconfig br0 真机ip为172.25.60.250
(3).设置虚拟机的IP,在虚拟机shell中输入命令:nm-connection-editor
删除拥有的System eth0 重新Add网络,跳出窗口检查默认项为Ethernet后,点击Create创建
设置名称为client 选择网关为eth0
在IPv4 Settings选项中
选择Manual
设置address为172.25.60.100(与真机172.25.60.250在同一网段)
Network输入24
Gateway为0 --> save保存
(4)重启网络 命令:systemctl restart network
并查看ip 命令:ifconfig eth0
ping 命令检查是否连接成功
(5)命令:ssh root@172.25.60.100 登陆desktop虚拟机
在Desktop虚拟机桌面建立sshfile文件
检查文件成功建立 说明真机成功登陆虚拟机,
命令:exit退出登陆 回到真机命令界面
在desktop虚拟机桌面上检查到sshfile文件,说明真机成功登陆虚拟机
(6)在desktop虚拟机中同样可以连接真机,下面进行上传/下载的实验远程复制:
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载
实验步骤:
a.在desktop虚拟机中直接用命令:scp /root/Desktop/sshfile root@172.25.60.250:/home/kiosk/Desktop
将虚拟机桌面上的sshfile文件 上传到真机桌面
b.查看真机说明,sshfile文件上传成功
并在真机桌面上建立kioskfile文件
c.在desktop虚拟机中直接用命令:scp root@172.25.60.250:/home/kiosk/Desktop/kioskfile root/Desktop/
将真机桌面上的kioskfile文件 上传到desktop虚拟机桌面,下图为desktop虚拟机中显示kioskfile文件 下载成功。
2.sshd的key认证
0.开启server虚拟机,修改主机名,配置网络ip为172.25.60.200 步骤与实验1相同,不再赘述
检查两台虚拟机是否可以互相ping通,ssh密码登录
注意:
第一次链接陌生主机时要建立认证文件, 所以会询问是否建立,需要输入yes
再次链接此台主机时,因为已经生成~/.ssh/know_hosts 文件所以不需要再次输入yes
1.生成“密钥对”
ssh-keygen
在生成密钥对的时候,根据提示需要输入三次,
第一次
Enter file in which to save the key (/root/.ssh/id_rsa):按回车键或设置密钥的存储路径
第二次
Enter passphrase (empty for no passphrase):直接按回车或设置密钥的密码
第三次
Enter same passphrase again:再次按回车或确认密钥的密码
注:也可以在生成时命令直接指定文件夹和密码:
ssh-keygen -f /root/.ssh/id_rsa -P “”
2.加密服务
命令:ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.60.200 ##加密sshd服务
authorized——keys标志着加密的完成,厘米啊你存储的字符串和id_rsa.pub的一样
3.分发钥匙
命令:scp /root/.ssh/id_rsa root@172.25.60.100:/root/.ssh/
发送钥匙给允许连接的用户主机
4.测试
在客户主机中(172.25.60.100)
查看/root/.ssh/目录下出现id_rsa文件
命令:ssh root@172.25.60.200 ###连接时直接登陆root用户不需要密码认证
3.sshd的安全设定
78 PasswordAuthentication yes|no ##是否允许用户通过登陆系统的密码做sshd的认证
48 PermitRootLogin yes|no ##是否允许root用户通过sshd服务认证
52 AllowUSers root student ##设置用户白名单
53 DenyUsers king westos ##设置用户黑名单
实验:
(1)PasswordAuthentication yes|no 是否允许用户通过密码认证sshd服务
修改/etc/ssh/sshd_config文件中的第78行 yes -> no
注意:重启sshd服务 systemctl restart sshd.service
效果:修改权限为no之后,不允许用户通过密码认证sshd服务
测试完成恢复原配置no->yes
(2).PermitRootLogin 是否允许root用户通过sshd服务的认证
修改/etc/ssh/sshd_config文件中的第48行 去掉注释符#再将yes -> no
效果:真机root用户连接虚拟机root用户,输入三次正确密码也无法认证sshd服务
测试完成恢复原配置no->yes 添加注释符#
(3)用户黑白名单
设置用户白名单,只有白名单中的用户可以通过sshd认证,其他用户不可通过
设置用户黑名单,只有黑名单中的用户不可以通过sshd认证,其他用户可通过
a.白名单实验:设置root westos为白名单用户 这两个可以通过sshd认证,不在白名单中的king用户输入正确密码也无法通过sshd认证
b.黑名单实验:设置king westos为黑名单用户 这两个不可以通过sshd认证,不在黑名单中的root用户可以通过sshd认证
测试完成恢复原配置给黑白名单行添加注释符#
4.添加sshd登录信息
命令:vim /etc/motd ###文件内容是登录时显示的信息
实验:
5.用户的登录查看
1.w命令
w | 查看正在使用当前系统的用户 |
w -f | 查看使用来源 |
w -i | 显示IP |
2.last命令: 查看使用过并退出的用户信息
lastb命令:查看登录但未成功的用户信息
实验:用真机连接虚拟机,虚拟机查看访问后利用进程号将访问进程杀死
效果:正在访问虚拟机的真机连接关闭