CentOS7.9 OpenSSH升级


环境:CentOS Linux release 7.9.2009 (Core)
版本:
openSSH:OpenSSH_7.4p1
openSSL:OpenSSL 1.0.2k-fips 26 Jan 2017

备份ssh配置文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old

下载OpenSSH源码包

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

tar xf openssh-9.8p1.tar.gz

cd openssh-9.8p1.tar.gz

配置 编译 安装

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-md5-passwords

make && make install

配置过程中报错OpenSSL版本过低,需要升级OpenSSL版本,如下图

# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

在这里插入图片描述

升级OpenSSL

下载OpenSSL源码包

wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz

tar xf openssl-1.1.1u.tar.gz

cd openssl-1.1.1u/

备份OpenSSL库

mv /usr/bin/openssl /usr/bin/openssl.old

mv /usr/include/openssl /usr/include/openssl.old

配置 编译 安装

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

make && make install

更新库文件路径、库缓存

echo "/usr/local/openssl/lib" >/etc/ld.so.conf.d/openssl_1.1.1.conf


ldconfig

更新OpenSSL库

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/openssl/include/openssl /usr/include/openssl

查看OpenSSL版本

# openssl version
OpenSSL 1.1.1u  30 May 2023

重新配置 编译 安装OpenSSH

使--with-ssl-dir参数指定openssl

cd ~/openssh-9.8p1/

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-pam --with-md5-passwords

make && make install

配置过程中报错找不到PAM,configure: error: PAM headers not found

在这里插入图片描述

安装PAM包

下载pam-devel 包

yum install --downloadonly --downloaddir=/root pam-devel

安装

# rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:pam-devel-1.1.8-23.el7           ################################# [100%]

再次配置 编译 安装OpenSSH

命令与重新配置 编译 安装OpenSSH部分一致

修改私钥文件权限

make install过程中提示/etc/ssh/ssh_host_ecdsa_key权限有问题,/etc/ssh/ssh_host_ecdsa_key权限只能是600,需要需改为600(这里安装后默认是640)

在这里插入图片描述

chmod 600 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key

这个报错如果忽略的话,重启sshd服务也会报错,还是会提示key文件权限有问题。修改后重启sshd服务正常

在这里插入图片描述

查看OpenSSH版本

# ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1u  30 May 2023
### 如何将 CentOS 7.9 上的 OpenSSH 升级9.8p1 版本 #### 背景说明 在 CentOS 7.9 中,默认安装的 OpenSSH 版本较低(如 OpenSSH_7.4p1),而由于 CVE-2024-6387 远程代码执行漏洞的存在,建议升级至更安全的版本(如 OpenSSH_9.8p1)。以下是详细的升级过程。 --- #### 步骤概述 ##### 准备工作 确认当前系统的环境信息: ```bash cat /etc/redhat-release uname -a ssh -V ``` 上述命令应返回如下信息: - `CentOS Linux release 7.9.2009 (Core)` - 内核版本:`Linux openssh 3.10.0-1160.el7.x86_64` - 当前 OpenSSH 版本:`OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017`[^1] --- ##### 安装依赖项 为了编译更高版本的 OpenSSH 和 OpenSSL,需先安装必要的开发工具和库文件: ```bash yum groupinstall "Development Tools" -y yum install gcc make perl zlib-devel pam-devel openssl-devel libedit-devel krb5-devel tcp_wrappers-devel -y ``` --- ##### 下载并解压源码包 下载最新版 OpenSSH 和 OpenSSL 源码包,并将其解压缩: ```bash cd /usr/local/src/ wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz tar zxvf openssh-9.8p1.tar.gz cd openssh-9.8p1/ # 如果需要更新 OpenSSL,则可以按照以下方式操作: wget https://www.openssl.org/source/openssl-3.0.14.tar.gz tar zxvf openssl-3.0.14.tar.gz cd openssl-3.0.14/ ./config --prefix=/usr/local/ssl shared zlib-dynamic make && make test && make install export PATH=$PATH:/usr/local/ssl/bin ``` 注意,在此过程中可能遇到配置错误提示,例如缺少某些头文件或链接器选项。此时可参考博文中的解决方案[^3]。 --- ##### 配置与编译 OpenSSH 进入 OpenSSH 解压目录后运行以下命令完成构建流程: ```bash ./configure \ --sysconfdir=/etc/ssh \ --with-md5-passwords \ --with-pam \ --with-zlib-prefix=/usr \ --with-kerberos5 \ --with-selinux \ --with-libwrap \ --with-ssl-dir=/usr/local/ssl \ CPPFLAGS=-I/usr/local/ssl/include \ LDFLAGS=-L/usr/local/ssl/lib make clean make make install ``` 如果一切正常,新版本的服务程序会被放置于 `/usr/local/sbin/sshd` 及其他相关路径下。 --- ##### 替换原有服务 停止现有 SSHD 服务并将默认位置替换为刚编译好的二进制文件: ```bash systemctl stop sshd cp /usr/local/sbin/sshd /usr/sbin/sshd chmod u+s /usr/sbin/sshd sshd -t # 测试配置文件语法是否正确 systemctl start sshd ``` 验证升级后的版本号: ```bash sshd -V ssh -V ``` 预期输出结果类似于: ``` OpenSSH_9.8p1, OpenSSL 3.0.14 4 Jun 2024 ``` [^2] --- ##### 更新客户端支持 对于远程连接使用的客户端也需要同步调整兼容性设置;否则可能会因协议差异导致无法登录等问题发生。 --- #### 注意事项 在整个操作期间务必小心谨慎以免影响服务器正常使用功能。推荐事先备份重要数据以及记录好每一步改动情况以便出现问题时能够快速回滚恢复原状。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偷学技术的梁胖胖yo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值