升级OpenSSH&&OpenSSL

本文讲述了作者在发现OpenSSH安全漏洞后,详细描述了如何升级OpenSSL至最新版本3.2.1,以及如何编译并配置OpenSSH9.7p1,处理hostkey算法匹配问题的过程。

之前发了个文章,搭建了一个OpenVPN,然后测试成功之后,想着这台服务器应该没问题了。

就执行漏扫发现存在openSSH安全漏洞,今天就写升级OpenSSH和OpenSSL。

本来想着单独升级OpenSSH的,但是下载了最新版本的OpenSSH 编译的时候发现,要球OpenSSL版本必须在1.1.1以上,而我的服务器版本是1.0.1.。。。。

一. 升级OpenSSL

        1. 下载安装包

        下载地址:https://www.openssl.org/source/openssl-3.2.1.tar.gz

        版本为3.2.1,既然都下载了,直接上最新版吧

        2. 上传解压

        下载通过rz上传到 /usr/local 目录下

        解压到 当前 目录下(这个目录随意)

        

tar -xf openssl-3.2.1.tar.gz 
cd openssl-3.2.1

        3. 编译

        

#安装依赖
yum -y install gcc perl make zlib-devel perl-CPAN
#编译
./config --prefix=/usr/src/ssl --openssldir=/usr/src/ssl shared zlib
make && make install

     20250310新增,这里编译可能会报错

Can't locate IPC/Cmd.pm in @INC (@INC contains: /usr/local/open/openssl/openssl-3.2.1/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /usr/local/open/openssl/openssl-3.2.1/external/perl/Text-Template-1.56/lib) at /usr/local/open/openssl/openssl-3.2.1/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /usr/local/open/openssl/openssl-3.2.1/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /usr/local/open/openssl/openssl-3.2.1/Configure line 23.
BEGIN failed--compilation aborted at /usr/local/open/openssl/openssl-3.2.1/Configure line 23.

 只需要执行

 yum -y install perl-IPC-Cmd

如果还有报错

Failure!  build file wasn't produced.
Please read INSTALL.md and associated NOTES-* files.  You may also have to
look over your available compiler tool chain or change your configuration.

ERROR!
No C compiler found, please specify one with the environment variable CC,
or configure with an explicit configuration target.

执行命令安装依赖

yum install gcc gcc-++ glibc-devel glibc-headers -y

然后就成功啦

写入文件

#根据系统版本选择,有个版本ld.so.conf 是个文本文件
echo '/usr/src/ssl/lib64' >> /etc/ld.so.conf/openssl.conf
#如果没有的话,查看是否有ld.so.conf.d文件夹,此文件夹下新建文件
 echo "/usr/src/ssl/lib64" >> /etc/ld.so.conf.d/openssl.conf 

  

ldconfig -v

        如果不升级OpenSSL的话,在编译OpenSSH的时候可能会报错

make: *** 没有指明目标并且找不到 makefile

         而且在编译之前的一步末尾会报错OpenSSL版本过低,这个忘记截图了。。。。。

二、升级OpenSSH

        1. 下载安装包

        下载地址:pub-OpenBSD-OpenSSH-portable安装包下载_开源镜像站-阿里云

        2. 解压

        rz上传到服务器 ,我实际使用的是9.7

        解压到其他目录

tar -xf openssh-9.7p1.tar.gz -C /usr/src
cd /usr/src/openssh-9.7p1

         3. 备份之前的配置文件

cd /etc/ssh
cp sshd_config{,.bak}
cd /etc/pam.d
cp sshd{,.bak}

        4. 安装依赖包

yum -y install gcc gcc-c++ zlib-devel openssl-devel pam-devel

        5. 编译

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-pam --with-ssl-dir=/usr/src/ssl/

make  &&  make install

       5.  检查

   

 echo $?

        6. 设置文件权限(要不然启动服务时候会报错权限过大)

        相关命令:

sshd -t

报错信息:

Unable to load host key “/etc/ssh/ssh_host_ed25519_key”: bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available – exiting.

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
cp -a contrib/redhat/sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

        7. 恢复配置文件

cd /etc/ssh
mv -f sshd_config.bak sshd_config
cd /etc/pam.d
mv -f sshd.bak sshd

        8. 修改配置文件,添加自启动

sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
chkconfig --add sshd
chkconfig sshd on
chkconfig --list
systemctl restart sshd
systemctl status sshd

        9. 完结收工

三、关于升级完了OpenSSH之后ssh连接服务器报错:找不到匹配的host key算法

         我的选择是删除 /etc/ssh 目录下 ssh_host_* 文件,重启 sshd 服务后恢复

cd /etc/ssh
mkdir backup
mv ssh_host_*  backup
systemctl restart sshd

        关于此问题另外两个大神的解决方法:

花花世界好欢喜大神的:解决ssh登录,找不到匹配的host key算法-优快云博客 

以及 不太灵光的程序员大神的:【漏洞修复】openssh 升级到后 xshell 连接提示找不到 key_找不到匹配的host key算法-优快云博客

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值