文章目录
七、Openssh服务的部署及安全优化
7.1 Openssh功能概述
- OpenSSH 是 SSH (Secure SHell) 协议的免费开源软件
- 软件安装名称 : Openssh-server
- 配置文件: /etc/ssh/sshd_conf
- 默认端口 :22
- 客户端命令 :ssh
7.2 ssh命令的用法
7.2.1 实验环境实现
- (1)首先开启sshd服务查看状态
(2)查看IP
[root@localhost Desktop]$ ip addr show
如果不行需要新建网卡
7.2.2 ssh命令
ssh remote user@remoteip
/ssh remote user remotoip
代码 | 效果 |
---|---|
ssh -l | 指定登录用户 |
ssh -i | 指定密钥 |
ssh -x | 开启图形 |
ssh -p | 指定端口 |
ssh -f | 后台运行 |
ssh -o | 指定连接参数 |
ssh -t | 指定连接跳板 |
- 例子
[root@localhost Desktop]$ ssh -l root 192.168.159.142 #连接IP为142的root用户
[root@localhost Desktop]$ ssh -l root 192.168.159.142 -p 22 #指定连接142主机的端口为22
[root@localhost Desktop]$ ssh -l root 192.168.159.142 -X gedit -f # 让142的主机在后台打开图形
[root@localhost Desktop]$ ssh -l root 192.168.159.142 -o StrictHostKeyChecking=no 让这个连接参数设置为否定
[root@localhost Desktop]$ ssh -t root 192.168.159.141 ssh root 192.168.159.142 # 用141为跳板连接142
连接上一般都需要输入密码才能够进入
使用w -i 命令可以查看控制此电脑的IP
7.3 Openssh服务的key认证
7.3.1 Openssh认证方式
(1)密码认证
- 至少6个字符
- 包括数字字母,下划线,特殊符号等
- 容易泄露
- 可以被暴力破解
- 密码容易丢失
(2)密钥认证
- 新型认证方式,分为公钥及私钥
- 公钥上传服务器
- 私钥配对认证,不会被盗用
- 攻击者一般无法通过密钥登录服务器
7.3.2 Openssh KEY
- 支持rsa及dsa加密k
- 加密方法:k
生成密钥:ssh-keyen
上传密钥:ssh-copy-id -i keyfile remote user remoteip
实现
实验环境:
客户A IP 192.168.159.143
客户B IP 192.168.159.142
服务机 IP 192.168.159.141
(1)在A上生成密钥
[root@localhost Desktop]$ ssh-keyen
(2)A中生成文件在/root/.ssh/中
(3)A中生成公钥发给服务机
[root@localhost Desktop]$ ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
(5)服务机生成已授权密钥文件
(6)当A登陆服务机时不需要密码就可以
(7)当B要登陆时还是要密码
(8)为防止暴力破解设置其他用户不能输入密码来登陆服务机
重启sshd服务
(9)当B登陆服务机时无法通过密码输入来登陆
(10)A向B发送密钥文件让B也可以登陆服务机
B登陆服务机:
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
配置参数:
参数 | 意义 |
---|---|
Port 22 | 监听端口 |
Protocol 2 | 指定协议版本 |
ListenAddress | 绑定ip |
HostKey | 设定hostkey密钥路径 |
PermitRootLogin | 设定超级用户是否可以登陆 |
PubkeyAuthentocation | 公钥认证开关 |
PasswordAuthentication | 密码认证开关 |
AllowUsers | 用户白名单 |
DenyUsers | 用户黑名单 |
- 例子:设置黑名单
一台主机设置如下:
[root@localhost Desktop]$ vim /etc/ssh/sshd_config
使用另一台主机进行登陆 黑名单用户无法登陆,其他用户可以正常登陆