CentOS8-Stream 升级ssh 到9.6

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近Centos8 -stream 系统被扫描出有漏洞,需要升级SSH到9.6 ,网上有好的教程,但总和实际系统有点差别,记录下。本文章从yum源更新写起,一步一步,实验可行。有需要的拿走,升级过程中遇到问题也可以一起探讨
在这里插入图片描述

1、yum源配置

CentOS8在2021年底就已经停止维护了~那么网络yum源就需要进行重新设置。
配置yum源
删除 /etc/yum.repos.d 目录中的所有文件,替换 /etc/yum.repos.d 目录中的 CentOS-Base.repo 内容。
替换内容如下`[base]
name=CentOS-8-stream - Base - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

#additional packages that may be useful
[extras]
name=CentOS-8-stream - Extras - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-8-stream - Plus - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[PowerTools]
name=CentOS-8-stream - PowerTools - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[AppStream]
name=CentOS-8-stream - AppStream - mirrors.aliyun.com
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

`

2、查看当前服务器的openssh版本

ssh -V
在这里插入图片描述

  1. 下载openssh
    下载地址Index of /pub/OpenBSD/OpenSSH/portable/
    在这里插入图片描述

3. 对原来的openssh备份

(1)通过whereis ssh 找到openssh的文件
在这里插入图片描述
(2)备份ssh和sshd文件或目录
在这里插入图片描述//根据查询出来的目录结果酌情修改 备份文件或目录

4 将openssh上传并解压

tar -zxvf openssh-9.6p1.tar.gz
在这里插入图片描述
在这里插入图片描述

5. 编译安装openssh

(1)切换到解压后的openssh目录
cd openssh-9.6p1

(2)初始化openssh

./configure --prefix=/usr/local/openssh9p6 --sysconfdir=/etc/ssh --with-pam --with-zlib
在这里插入图片描述
(3)安装 cc ,gcc环境
yum -y install gcc

在这里插入图片描述yum -y install gcc-c++

在这里插入图片描述
安装好后,再次
./configure --prefix=/usr/local/openssh9p6 --sysconfdir=/etc/ssh --with-pam --with-zlib
提示
在这里插入图片描述
(4)安装zlib
yum install zlib-devel
在这里插入图片描述
安装完成以后再次执行./configure没有报这个错误了.
安装完成后,再次
./configure --prefix=/usr/local/openssh9p6 --sysconfdir=/etc/ssh --with-pam --with-zlib
提示
在这里插入图片描述

6. working libcrypto not found解决

在这里插入图片描述
报错原因
出现上述两种报错,是因为缺少openssl-devel包或者libcrypto相关库的位置不正确。

解决办法
第一种解决办法 – 最推荐的解决办法(最简单有效)
yum安装openssl-devel包即可:
yum install -y openssl-devel
第二种解决办法
尝试将编译参数–with-ssl-dir=/usr/local/ssl修改为–with-ssl-dir=/usr/local后再尝试编译;完整编译命令行如下:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --without-openssl-header-check --with-ssl-dir=/usr/local --with-privsep-path=/var/lib/sshd
第三种解决办法 – yum update来升级OpenSSH(第一种方法无效的情况下推荐此方法)
先执行yum update openssh将OpenSSH_6.4p1升级到高版本(版本比6.4高,肯定不会高于8.0)后,再编译升级到OpenSSH_8.0p1;
yum update openssh
第四种解决办法
如果在生产环境中不支持直接yum安装openssl-devel或者升级OpenSSH的情况下,可先将当前OpenSSH版本编译升级到OpenSSH_7.4p1后再编译升级到OpenSSH_8.0p1。
在这里插入图片描述
检查openssl-devel安装情况 ‘
yum list installed |grep openssl-devel,
在这里插入图片描述
如果没有就用第一种方案
如果安装了,看看与openssl version是否一致,一般情况下不一致。实验机器为没有安装,选择了第一种方案
如果是版本不一致,请全局搜索下 openssl 目录,看看有没有源码安装目录

在这里插入图片描述
找到不一致的源码目录,进入后执行卸载操作
在这里插入图片描述
再次执行,应该一切正常。
提示:源码安装系统组件一定要保留编译安装目录,不然出现这种情况基本就得重装系统了。

安装完成后,,再次
./configure --prefix=/usr/local/openssh9p6 --sysconfdir=/etc/ssh --with-pam --with-zlib
提示
在这里插入图片描述

7. 安装PAM

yum -y install pam-devel
在这里插入图片描述
安装完成后,check通过
在这里插入图片描述## 卸载原有的openssh包
此命令会将找到的openssh相关的rpm包强制删除。

rpm -e --nodeps rpm -qa | grep openssh

8. 编译安装

make -j 4
make install

9. 修改sshd_config文件(一定)

vim /etc/ssh/sshd_config

PermitRootLogin yes 、PubkeyAuthentication yes、PasswordAuthentication yes 将配置文件中这几个改为yes.

说明:

PermitRootLogin yes:允许root用户通过SSH登录到系统
PubkeyAuthentication yes:启用公钥身份验证
PasswordAuthentication yes:启用密码身份验证
在这里插入图片描述
12. 复制新的配置文件到原来目录
cp /usr/local/openssh9p6/sbin/sshd /usr/sbin/sshd

cp /usr/local/openssh9p6/bin/ssh /usr/bin/ssh

cp /usr/local/openssh9p6/bin/ssh-keygen /usr/bin/ssh-keygen

cp -p contrib/redhat/sshd.init /etc/init.d/sshd

10. 添加权限

chmod +x /etc/init.d/sshd

11. 核对sshd_config文件(一定)

cat /etc/ssh/sshd_config
确保 PermitRootLogin yes 、PubkeyAuthentication yes、PasswordAuthentication yes 配置文件中这几个为yes.

12.开启开机自启sshd

systemctl enable sshd

13.重启sshd

systemctl restart sshd

14. 验证是否成功

sshd -V
在这里插入图片描述

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值