1 Openssh功能介绍
2 ssh命令
3 Openssh服务的key认证
4 Openssh服务的安全优化
1.Openssh功能概述
Openssh
OpenSSH 是 SSH (Secure SHell) 协议的免费开源软件
软件安装名称
• Openssh-server
配置文件
• /etc/ssh/sshd_conf
默认端口(接口是用来区分IP地止上开启的不同功能)
• 22
客户端命令
• ssh
查看系统当中的opessh-server
[root@workstation Desktop]# rpm -qa | grep ope
2.ssh命令
ssh命 令 remote USER@remoteIP
参数 | 用途 |
-l | 指定登录用户 |
-x | 开启图形 |
-i | 指定密钥 |
-p | 指定端口 |
-f | 后台运行 |
-o | 指定连接参数 |
-t | 指定连接跳板 |
2.1 查看虚拟机火墙是否允许真机连接
显示结果允许
2.2指定用户登陆:
[kiosk@foundation66 Desktop]$ ssh -l root 172.25.254.111
真机连接虚拟机是需输入虚拟机密码
2.2.1在虚拟机中查看连接者的IP
[root@workstation Desktop]# w -i
2.3开启图形:
当前在真机中登陆虚拟机是无法打开gedit图形界面,因为-l是文本连接,若要打开图像命令需在命令最后使用参数-X才可打开gedit
真机kiosk中运行进程有gedit
虚拟机中没有
2.4-p指定端口 ssh的指定端口22
2.5-f后台运行
不占用终端
2.6指定参数登陆
如下在登录时会被询问yes或no,
2.7使用-o参数可以忽略直接输入密码登录
2.8跳板连接
-t参数
ssh -t root@172.25.254.66 ssh 172.25.254.111
当某台主机不能直接连接workstation则先连接IP:172.25.254.66的真机在连接workstation
3.Openssh服务的key认证
3.1 Op en ssh认 证 方 式
密码认证 | 密钥认证 |
至少6个字符 | 新型认证方式,分为公钥及私钥 |
包含数字,字母,下划线特殊符号等 | 不用记住密码 |
易泄漏 | 公钥上传服务器 |
可被暴力破解 | 私钥配对认证,不会被盗用 |
密码容易丢失 | 攻击者一般无法通过密钥登录服务器 |
3.2 Openssh KEY
支持rsa及dsa加密
加密方法
关于 Openssh的文件
• 内容
文件 功能
~/.ssh/authorized_keys 用于保存用户的公钥文件
~/.ssh/known_hosts 辨别服务器的唯一散列码
~/.ssh/id_dsa 用户的私钥文件
~/.ssh/id_rsa.pub 用户的公钥文件
• 生成密钥 ssh-keygen
• 上传密钥 ssh-copy-id –i keyfile remoteUSER@remote IP
3.3保持实验环境纯洁(.ssh/目录会在第一次登录服务器时生成,里面也会生成一个文件know_hostos)删除该目录文件
3.4生成公钥和私钥
密钥的生成位置客户端和主机都可以
使用默认文件目录和名称,密码忽略输入
密钥成功生成:
3.4.1.ssh/会生成以下文件如下:
解锁——私钥:/root/.ssh/id_rsa 上锁——公钥:/root/.ssh/id_rsa.pub
3.4.2上锁:
.ssh/会生成一个authorized_keys文件也就是锁,此文件内容与id_rsa.pub的内容一样
3.5免密登录:
未持有私钥的用户每次登录都会显示要输入密码,有安全因患。可暴力破解
3.5.1关闭显示密码登录,直接拒绝未拥有私钥的用户
[root@workstation ~]# vim /etc/ssh/sshd_config 编辑此文件
73行的yes改成no
3.5.2并且重启该程序[root@workstation ~]# systemctl reload sshd
此时再次登录直接拒绝访问
3.6把私钥给所需要连接的主机
[root@workstation ~]# scp /root/.ssh/id_rsa kiosk@172.25.254.66:/home/kiosk/.ssh
3.6.1拥有私钥的状态下不需要输入密码直接登录服务端
3.7更改密钥让所有拥有密钥的用户都无法登录
3.7.1取消限制则需恢复文件原始名称
3.7.2更改为authorized_keys则可登录
4 Openssh服务的安全优化
sshd服务常用相关配置参数
主配置文件
• /etc/ssh/sshd_config
配置参数
• Port 22 监听端口
• Protocol 2 指定协议版本
• ListenAddress 绑定IP
• HostKey 设定HostKey密钥路径
• PermitRootLogin 设定超级用户是否能登录
• PubkeyAuthentication 公钥认证开关
• PasswordAuthentication 密码认证开关
• AllowUsers 用户白名单
• DenyUsers 用户黑名单
4.1端口更改:编辑/etc/ssh/sshd_config文件
prot 22 改为prot 8888
查看端口命令:netsata
a:所有
l:活跃开启的端口
t:tpp协议
u:upp协议
p:显示进程名称
n:之显示端口值
4.1.1注意:为了保证服务能够正常运行需先执行此命令setenforce 0
,防止程序无法启动
4.2 ListenAddress 绑定IP 指定连接某一IP其他IP不能连接
listenAddress 0.0.0.0.表示所以IP都可连接成功
指定连接:#IPlistenAddress 172.25.254.111
下方#listenAddress ::为IPV6
listenAddress 172.25.254.111即只能连接此IP登录
4.3HostKey 设定HostKey密钥路径 一般使用设定路径
4.4 PermitRootLogin 设定超级用户是否能登录
设定超级用户能否登录
当前超级用户可以登录:
4.4.1 设定完成后不可以登录超级用户,但可以登录普通用户
设置/etc/ssh/sshd_config中的46行yes改为no即可
4.4.2 完成效果如下:输入三次密码后将直接退出不能登录
4.4.3 可以登录普通用户:
4.5 黑白名单
PermitRootLogin yes 超级用户的黑白名单即:yes白名单no黑名单
当前所有用户都可登录
4.5.1 黑名单设置:设置westos用户不可登录
设置方法 | DenyUsers 用户 |
4.5.2重新加载服务配置:
4.5.3再次登录如下:除westos用户外其他用户均可登录
4.5.4 设置白名单:设置白名单为westos
设置方法 | AllowUsers 用户 |
4.5.6 重新加载服务配置
4.5.7 再次登录如下:
除westos用户外其他所有用户均不可登录