Redat Linux 中 Openssh服务的部署及安全优化

Openssh功能概述

OpenSSH 是 SSH (Secure SHell) 协议的免费开源软件
软件安装名称 • Openssh-server
配置文件 • /etc/ssh/sshd_conf
默认端口 • 22 (可更改)
客户端命令 • ssh


ssh命令的用法

首先我们需要进行2台虚拟机进行实验,所以我们先来进行虚拟机网络配置,使两台虚拟机网络是互通的,这里以我自己的虚拟机worktation、severa 来进行实验演示:

首先在worktation中设置一块网卡

Redat Linux 中 Openssh服务的部署及安全优化_第1张图片
命令 nm-connection-editor 进入网络设置,点击Create进入下一步
Redat Linux 中 Openssh服务的部署及安全优化_第2张图片
Connection name 后面输入你设置的网卡的名称,在 Device 一行选择网卡
Redat Linux 中 Openssh服务的部署及安全优化_第3张图片
前一步设置完后,点击 IPv4 Settings ,在里面Method一行后面选Manual,然后在Addresses这里点击Add,添加一行空白一次填写ip地址、Netmask,Gateway这个不填点击一下就可以,否则无法保存。ip地址根据真机的ip改一下后面的数字,真机的ip用ip addr show 命令查看
Redat Linux 中 Openssh服务的部署及安全优化_第4张图片
这就是我的真机的ip地址,上面设置完后Save保存就完成了
同样我配置severa的网卡设置ip设置为172.25.254.80,完成这些操作,我们需要测试两台主机之间的网络是否畅通,测试命令是 “ping IP地址”
Redat Linux 中 Openssh服务的部署及安全优化_第5张图片
这些都测试完后,我们开始正文实验

命令:ssh remoteUSER@remoteIP 此命令是远程连接另一台主机
Redat Linux 中 Openssh服务的部署及安全优化_第6张图片
ssh 用户名@主机ip地址,就可以链接过去,第一次还需要确认是否要链接输入yes即可,然后输入目标主机用户的密码就链接成功了。
我们介绍一下ssh命令的可以使用到的参数有哪些

参数 作用
-l 指定登录用户
-i 指定密钥
-X 开启图形
-p 指定端口
-f 后台运行
-o 指定连接参数
-t 指定连接跳板
-l参数

是另一种连接方式,也是连接其他主机,如下演示
Redat Linux 中 Openssh服务的部署及安全优化_第7张图片

-i参数

指定密匙是为了提高连接的安全性,创建一个独立的链接方式,避免其他人也可以随意连接,这个方式在下一节会详细说明

-X

开启连接远程主机的图形工具,例如firefox等程序
在这里插入图片描述

-p参数

指定端口,我们正常的端口都是22,如果端口被修改过那就需要用“-p 端口号”去指定
在这里插入图片描述

-f参数
[root@severa ~]# ssh -f [email protected] -X gedit

运行图形编辑但不占用终端显示

-o参数

-o的用途有很多,所以我们可以用 “man ssh” 来查看ssh命令的用法
Redat Linux 中 Openssh服务的部署及安全优化_第8张图片
可以看到可以加的参数有很多,例如“StrictHostKeyChecking” 参数,我们在第一次连接其他主机时会出现验证确认需要输入yes或no,加上这个参数就可以直接略去这个步骤
Redat Linux 中 Openssh服务的部署及安全优化_第9张图片
实验首先删除“.ssh”文件,因为连接过一次后就不再需要验证,然后正常连接,提示需要输入yes或no,取消我们试加-o参数StrictHostKeyChecking=no,就是不再询问,然后直接跳到输入密码环节

-t参数

连接跳板,例如我现在想用severa 连接 workstation ,但是不想让对方看到是severa连接的,这是借助另一台主机来跳转连接

[root@severa ~]# ssh -t [email protected] ssh [email protected]

命令 "w -i"可以查看谁连接了本机,所以你用其他主机作为跳板时就可以别面被发现真实的ip地址


Openssh服务的key认证

Openssh服务的key认证分为两种
密码认证:
• 至少6个字符
• 包含数字,字母,下划线特殊符号等
• 易泄漏
• 可被暴力破解
• 密码容易丢失
密钥认证:
• 新型认证方式,分为公钥及私钥
• 公钥上传服务器
• 私钥配对认证,不会被盗用
• 攻击者一般无法通过密钥登录服务器

这个环节就需要用到 “-i” 参数,给两台主机配对密匙,达到免密和更安全的连接效果,先来看命令

  • 生成密钥 ssh-keygen
  • 上传密钥 ssh-copy-id –i keyfile remoteUSER@remoteIP

实验操作:
我们需要3台主机来实验,分别是

  • 客户端 severa 172.25.254.80
  • 服务端 workstation 172.25.254.180
  • 测试端 severb 172.25.254.100
    第一步,在客户端里生成密匙,为了保证实验效果先删除/root/.ssh文件,再输入命令
    Redat Linux 中 Openssh服务的部署及安全优化_第10张图片
    输入命令后出现的等待输入直接回车确认即可,如果更改会产生其他大量的工作去做,完成后会告诉你identification 保存在 /root/.ssh/id_rsa;public key保存在 /root/.ssh/id_rsa.pub。其中identification是私钥,就是钥匙;public key公钥,就是锁。
    ls来查看是否存在。
    接下来上传公钥给服务端 ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
    Redat Linux 中 Openssh服务的部署及安全优化_第11张图片
    添加公钥的时候是需要输入连接的主机的密码,完成后去服务端查看结果
    Redat Linux 中 Openssh服务的部署及安全优化_第12张图片
    然后客户端里生成的公匙对比是否内容一致
    Redat Linux 中 Openssh服务的部署及安全优化_第13张图片
    完成上锁操作后,我们使用客户端连接服务端
    在这里插入图片描述
    可以不需要免密直接连接,接着来用测试端连接服务端
    Redat Linux 中 Openssh服务的部署及安全优化_第14张图片
    测试端还是需要输入密码的。如果测试端也想用密匙登录,就需要用到命令“scp”复制远程主机的文件到本机上
    Redat Linux 中 Openssh服务的部署及安全优化_第15张图片
    然后再连接服务端
    在这里插入图片描述
    这样就同样可以免密登录。

关于Openssh的文件大概总结一下

文件 含义
~/.ssh/authorized_keys 被锁主机用于保存用户的公钥文件
~/.ssh/known_hosts 辨别服务器的唯一散列码
~/.ssh/id_dsa 用户的私钥文件
~/.ssh/id_rsa.pub 用户的公钥文件

另外如果被锁用户不想再被免密登录,只需要把保存公钥的文件改名就可以
在这里插入图片描述
在这里插入图片描述
更改后相当于锁和要是不匹配无法使用了


Openssh服务的安全优化

我们来了解一些sshd服务常用相关配置参数
配置文件 • /etc/ssh/sshd_config
配置参数

Port 22 监听端口
Protocol 2 指定协议版本
ListenAddress 绑定IP
HostKey 设定HostKey密钥路径
PermitRootLogin 设定超级用户是否能登录
PubkeyAuthentication 公钥认证开关
PasswordAuthentication 密码认证开关 AllowUsers
AllowUsers 用户白名单
DenyUsers 用户黑名单

例:监听端口更改
在服务端 vim /etc/ssh/sshd_config ,进入配置文件更改port,命令前面有#号的表示不启用,所以要启用命令删除前面的#号
Redat Linux 中 Openssh服务的部署及安全优化_第16张图片
我将22改为666,再去客户端连接测试
在这里插入图片描述
连接不到端口了,这时我们使用-p参数来指定端口,进行连接

[root@severa ~]# ssh -l root 172.25.254.180 -p 666
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Mon Feb  3 01:57:41 2020

其他的像密码认证开关,关闭后其他没有密匙的主机就无法通过输入密码再连接了。白名单是需要手动输入添加,是指定只能裂解哪个用户。黑名单是指定不能连接哪个用户。

以上内容就对Openssh服务操作讲解及说明

你可能感兴趣的:(Redhat,Linux,8,知识讲解,linux,ssh)