7.1 Openssh介绍
- OpenSSH是SSH (Secure SHell) 协议的免费开源软件,可以通过网络在主机中开机shell的服务
- 软件安装名称:Openssh-server
- 配置文件:/etc/ssh/sshd_conf
- 默认端口:22
- 客户端命令:ssh
7.2 ssh命令
ssh命令连接方式:
- ssh username@ip ##文本模式的链接
- ssh -X username@ip ##可以在链接成功后开机图形
参数 | 作用 |
---|---|
ssh -l | 指定登录用户 |
ssh -i | 指定密钥 |
ssh -X | 开启图形 |
ssh -f | 后台运行 |
ssh -p | 指定端口 |
ssh -o | 指定连接参数 |
ssh -o | 指定连接跳板 |
实验:
打开虚拟机rhel8.1
virsh list --all 列出所有虚拟机
virsh start rhel8.1 启动指定虚拟机
virt-viewer rhel8.1 & 显示指定虚拟机(不占用终端)
在打开的虚拟机中查看ip
ip addr show
在真实主机通过ssh命令登陆虚拟机
ssh root@192.168.2.100
为了验证是否登陆到虚拟机,可以新建文件testfile,然后在虚拟机中查看
touch /root/Desktop/testfile
可以看到,虚拟机中新建了文件testfile
7.3 Openssh服务的key认证
7.3.1 Openssh认证方式
1.密码认证:
- 至少6个字符
- 包含数字,字母,下划线特殊符号等
- 易泄漏
- 可被暴力破解
- 密码容易丢失
2.密钥认证:
- 新型认证方式,分为公钥及私钥
- 公钥上传服务器
- 私钥配对认证,不会被盗用
- 攻击者一般无法通过密钥登录服务器
7.3.2 Openssh Key
支持rsa及dsa加密
加密方法:
- 生成密钥 ssh-keygen
- 上传密钥 ssh-copy-id –i keyfile remoteUSER@remoteIP
实验截图:
1.生成认证KEY
2.加密服务
3.测试
可以直接通过私钥登陆
7.3.3 关于Openssh的文件
- ~/.ssh/authorized_keys ##用于保存用户的公钥文件
- ~/.ssh/known_hosts ##辨别服务器的唯一散列码
- ~/.ssh/id_dsa ##用户的私钥文件
- ~/.ssh/id_rsa.pub ##用户的公钥文件
7.4 Openssh服务的安全优化
sshd服务常用相关配置参数:
配置文件:/etc/ssh/sshd_config
常用安全设定:
- PasswordAuthentication yes|no ##是否允许用户通过登陆系统的密码做sshd的认证(redhat8.1中在配置文件73行)
- PermitRootLogin yes|no ##是否允许root用户通过sshd服务的认证
- Allowusers student westos ##设定用户白名单,白名单出现默认不在名单中的用户不能使用sshd
- Denyusers westos ##设定用户黑名单,黑名单出现默认不在名单中的用户可以使用sshd
实验:
打开虚拟机server
在server端以ssh方式登陆虚拟机rhel8.1
可以看到依旧可以通过输入密码的方式登陆
现在我们可以通过改变配置文件不允许通过密码登陆,这样就只有拥有密钥的真实主机可以通过ssh登陆虚拟机rhel8.1
vim /etc/ssh/sshd_config
重启sshd服务
systemctl stop sshd 停止sshd服务
systemctl status sshd 查看服务状态
重新启动sshd服务
systemctl start sshd
systemctl status sshd
再从server端尝试登陆rhel8.1
ssh root@192.168.2.100
可以看到请求被拒绝