ToB企服应用市场:ToB评测及商务社交产业平台

标题: CentOS 7 升级 OpenSSH 9.6 (官方简单步调) [打印本页]

作者: 诗林    时间: 2024-10-14 13:43
标题: CentOS 7 升级 OpenSSH 9.6 (官方简单步调)

场景

手头有很多业务跑在 CentOS 7.x 情况,体系太老且OpenSSH 使用官方rpm包最高只能升级到7.4。要修复OpenSSH 近来的高危漏洞,只能使用OpenSSH 源码包手工编译。需要注意的点:

准备情况

1. 编译情况

在 CentOS 7 中安装各种库、头文件、编译器和打包工具,yum 源可以配置aliyun的centos-vault
  1. yum groupinstall -y "Development Tools"
  2. yum install -y zlib-devel pam-devel krb5-devel
  3. yum install -y rpmdevtools imake libXt-devel gtk2-devel
  4. # 创建 编译和打包 的目录结构
  5. rpmdev-setuptree
  6. # 完成后创建以下目录
  7. # /root/rpmbuild/SOURCES
  8. # /root/rpmbuild/SPECS
  9. # /root/rpmbuild/BUILD
  10. # /root/rpmbuild/RPMS
  11. # /root/rpmbuild/SRPMS
复制代码
完成后/root/rpmbuild目录结构如下

2. 下载源码

默认编译需要用到 openssh 和 x11-ssh-askpass 两套源码,源码包生存到/root/rpmbuild/SOURCES/目录下,无需解压:

  1. cd /root/rpmbuild/SOURCES/
  2. # 使用aliyun镜像下载openssh
  3. curl -LO https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
  4. # x11-ssh-askpass-1.2.4.1
  5. wget http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz
复制代码
至此编译情况已准备好
编译OpenSSH

编译过程:
  1. # 找到openssh包并解压spec
  2. cd /root/rpmbuild/SOURCES/
  3. tar -xvzf openssh-9.6p1.tar.gz \
  4.         -C /root/rpmbuild/SPECS/ \
  5.         --strip-components=3 \
  6.         openssh-9.6p1/contrib/redhat/openssh.spec
  7. # 到 /root/rpmbuild/SPECS/ 目录下
  8. # 使用 openssh.spec 编译和打包
  9. rpmbuild -ba openssh.spec
复制代码
rpmbuild不报错实验完,编译和打包效果会放在/root/rpmbuild/RPMS/x86_64/目录下

安装

安装比较简单,rpm或yum均可
  1. cd /root/rpmbuild/RPMS/x86_64
  2. rpm -Uvh openssh-9.6p1-1.el7.x86_64.rpm \
  3.         openssh-server-9.6p1-1.el7.x86_64.rpm \
  4.         openssh-clients-9.6p1-1.el7.x86_64.rpm
  5. # 或执行
  6. yum install -y openssh-9.6p1-1.el7.x86_64.rpm \
  7.         openssh-server-9.6p1-1.el7.x86_64.rpm \
  8.         openssh-clients-9.6p1-1.el7.x86_64.rpm
复制代码
  升级安装时需要注意 /etc/ssh 目录下sshd的配置
  
  1. cd /etc/ssh
  2. chmod 600 *key
  3. # 可选操作:删除 rsa密钥 和 ecdsa密钥
  4. mkdir bak
  5. mv ssh_host_ecdsa_key* bak/
  6. mv ssh_host_rsa_key* bak/
  7. # 可选操作:替换sshd_config
  8. # 注意检查旧版本sshd_config的配置,如是否允许root登录
  9. mv sshd_config sshd_config.openssh74
  10. mv sshd_config.rpmnew sshd_config
复制代码
各项配置查抄妥当后,重启sshd
  1. systemctl restart sshd.service
复制代码
这里有几点经验
总结

本次编译的rpm包可以在这里下载
另外需要关注:openssl 版本低于1.1.1导致 openssh 编译时自动加上 --without-openssl,使用sshd -V也显示without OpenSSL,下篇博客解决这个问题


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4