论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
运维.售后
›
运维.售后
›
CentOS 7 升级 OpenSSH 9.6 (官方简单步调)
CentOS 7 升级 OpenSSH 9.6 (官方简单步调)
诗林
金牌会员
|
2024-10-14 13:43:41
|
显示全部楼层
|
阅读模式
楼主
主题
515
|
帖子
515
|
积分
1545
场景
手头有很多业务跑在 CentOS 7.x 情况,体系太老且OpenSSH 使用官方rpm包最高只能升级到7.4。要修复OpenSSH 近来的高危漏洞,只能使用OpenSSH 源码包手工编译。需要注意的点:
OpenSSH 提供多种操作体系分发版的打包,CentOS 7.x 可以打出rpm包,
不建议使用 make install 方式安装
OpenSSH 需要 openssl >= 1.1.1,CentOS 官方没有这个版本,因此OpenSSH
在 CentOS 7 默认使用 --without-openssl 编译
。这完全不影响ssh和sshd一样平常使用,后续再补全openssl-1.1.1编译步调
准备情况
1. 编译情况
在 CentOS 7 中安装各种库、头文件、编译器和打包工具,yum 源可以配置aliyun的centos-vault
yum groupinstall -y "Development Tools"
yum install -y zlib-devel pam-devel krb5-devel
yum install -y rpmdevtools imake libXt-devel gtk2-devel
# 创建 编译和打包 的目录结构
rpmdev-setuptree
# 完成后创建以下目录
# /root/rpmbuild/SOURCES
# /root/rpmbuild/SPECS
# /root/rpmbuild/BUILD
# /root/rpmbuild/RPMS
# /root/rpmbuild/SRPMS
复制代码
完成后/root/rpmbuild目录结构如下
2. 下载源码
默认编译需要用到 openssh 和 x11-ssh-askpass 两套源码,源码包生存到/root/rpmbuild/SOURCES/目录下,无需解压:
openssh 源码https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
下面以 openssh-9.6 为例,使用阿里云国内镜像https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
x11-ssh-askpass 源码http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-%{aversion}.tar.gz
openssh-9.6 使用 x11-ssh-askpass-1.2.4.1,如果404可以在这里下载
cd /root/rpmbuild/SOURCES/
# 使用aliyun镜像下载openssh
curl -LO https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
# x11-ssh-askpass-1.2.4.1
wget http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz
复制代码
至此编译情况已准备好
编译OpenSSH
编译过程:
从 openssh 源码包中解压出 RedHat 用的SPEC文件,CentOS 同样适用,放在/root/rpmbuild/SPECS目录下
编译 + 打包,编译过程一样寻常不会出错,最终得到 rpm 包
# 找到openssh包并解压spec
cd /root/rpmbuild/SOURCES/
tar -xvzf openssh-9.6p1.tar.gz \
-C /root/rpmbuild/SPECS/ \
--strip-components=3 \
openssh-9.6p1/contrib/redhat/openssh.spec
# 到 /root/rpmbuild/SPECS/ 目录下
# 使用 openssh.spec 编译和打包
rpmbuild -ba openssh.spec
复制代码
rpmbuild不报错实验完,编译和打包效果会放在/root/rpmbuild/RPMS/x86_64/目录下
安装
安装比较简单,rpm或yum均可
cd /root/rpmbuild/RPMS/x86_64
rpm -Uvh openssh-9.6p1-1.el7.x86_64.rpm \
openssh-server-9.6p1-1.el7.x86_64.rpm \
openssh-clients-9.6p1-1.el7.x86_64.rpm
# 或执行
yum install -y openssh-9.6p1-1.el7.x86_64.rpm \
openssh-server-9.6p1-1.el7.x86_64.rpm \
openssh-clients-9.6p1-1.el7.x86_64.rpm
复制代码
升级安装时需要注意 /etc/ssh 目录下sshd的配置
私钥文件的权限应设置为600,否则sshd会无法启动
openssh7 的 rsa密钥 和 ecdsa密钥 已经不再有效了,可选删除
新的sshd_config被命名为sshd_config.rpmnew,可选备份并替换
cd /etc/ssh
chmod 600 *key
# 可选操作:删除 rsa密钥 和 ecdsa密钥
mkdir bak
mv ssh_host_ecdsa_key* bak/
mv ssh_host_rsa_key* bak/
# 可选操作:替换sshd_config
# 注意检查旧版本sshd_config的配置,如是否允许root登录
mv sshd_config sshd_config.openssh74
mv sshd_config.rpmnew sshd_config
复制代码
各项配置查抄妥当后,重启sshd
systemctl restart sshd.service
复制代码
这里有几点经验
重启sshd服务后
先不要关闭终端软件session
,因为现有的连接是旧版sshd提供的。
先开新的session测试ssh连接
,能乐成登录并成为root用户后再思量关闭老的session,避免各种问题导致无法连接服务器
如果要升级生产情况,务必先在测试情况多测试,然后分期分批升级生产情况,否则会劳绩很凄切的教导
总结
本次编译的rpm包可以在这里下载
另外需要关注:openssl 版本低于1.1.1导致 openssh 编译时自动加上 --without-openssl,使用sshd -V也显示without OpenSSL,下篇博客解决这个问题
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
诗林
金牌会员
这个人很懒什么都没写!
楼主热帖
图片 css剪切,等比例缩放
Android技能整理:一文秒懂Flutter跨平 ...
Windows安装mamba全流程(全网最稳定最 ...
Adobe2024全家桶win及Mac系统安装包下 ...
开源精选:数字营销的全能工具箱——A ...
【Linux】Ubuntu20.04解决网卡、显卡驱 ...
高通相机camx-chi 架构详解
读高性能MySQL(第4版)笔记09_创建高 ...
混凝土塑性损伤模型概念整理:素混凝土 ...
Kafka(一)利用Docker Compose安装单 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表