1、sshd简介
sshd=secure shell
可以通过网络在主机中开shell的服务
连接方式:
ssh username@ip ##文本模式的连接
ssh -X username@ip ##可以在连接成功后开启图形
本实验需要通过两台虚拟机,故先配置环境
两台虚拟机
client 172.25.254.147
rm -fr /root.ssh/ ##删除/root/.ssh
useradd westos ##建用户
passwd westos
hostnamectl set-hostname client_ssh.westos.com ##改名
server 172.25.254.247
rm -fr /root.ssh/
useradd redhat
passwd redhat
hostnamectl set-hostname server_sshd.westos.com
测试两台主机网络是否通,如图网络通畅
尝试用client这台主机连接server主机,如图
注意:
第一次连接陌生主机是要建立认证文件
所以会询问是否建立,需要输入yes
再次连接此台主机时,因为已经生成~/.ssh/know_hosts文件,所以不需要再次输入yes
vim /etc/hosts.deny中写sshd:ALL ##拒绝所有人连接
vim /etc/hosts.allow中写sshd:ALL EXCEPT 172.25.254.147 ##允许所有人连接除了172.25.254.147
注意:允许高于拒绝
此时访问就会被拒绝
vim /etc/hosts.allow中写sshd:ALL EXCEPT 172.25.254.147
此时client来连接,就会被拒绝
2、加密
1)、生成密要
ssh-keygen -f /root/.ssh/id_rsa -N "" ##密钥存在/root/.ssh/下文件名是id_rsa, 密码设置为空,即“”
2)、加密
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.247 ##.pub是公钥,用来加密
3)、发送给用户端密钥
scp /root/.ssh/id_rsa root@172.25.254.147:/root/.ssh/
加密后再关闭 vim /etc/ssh/sshd_config 第86行修改yes–>no ##关掉输密码连接
systemctl reload sshd.service ##重启
测试
用户端访问 ssh root@172.25.254.247
删除锁 rm -fr /root/.ssh/authorized_keys
再次访问无法访问
重新加锁 cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
此时访问生效
远程复制:
scp file root@ip:dir ##上传
scp root@ip:file dir ##下载
3、sshd的安全设定
vim /etc/ssh/sshd_config进入
78行 PasswordAuthentication yes|no ##是否允许用户通过登陆系统的密码作sshd的认证
48行 PermitRootLogin yes|no ##是否允许root用户通过sshd服务的认证
52行 Allowusers student westos ##设定用户白名单,白名单外用户不能使用sshd
53行 Denyusers westos ##设定用户黑名单,黑名单外可用sshd
4、添加SSHD登陆信息
vim /etc/motd ##文件内容就是登陆后显示的信息
5、用户的登陆审计
1)
w ##查看正在使用当前系统的用户
-f ##查看使用来源
-i ##查看ip
存储在/run/utmp中
2)last ##查看谁登陆过并退出的用户信息,存储在/var/log/wtmp
3)lastb ##查看谁试图登陆过,但没有成功的用户,存储在/var/log/btmp