Linux中: 通过编译安装的方式升级 OpenSSH 服务

news/2025/11/22 16:41:34/文章来源:https://www.cnblogs.com/heyongshen/p/19258084

Linux中: "通过编译安装的方式升级 OpenSSH 服务"

OpenSSH 升级背景:

因为当前操作系统上的 OpenSSH 是通过包管理工具进行安装,因为低版本存在漏洞问题,但是官方仓库中没有最新的 OpenSSH 版本,所以此时只能手动编译源码的方式来实现 OpenSSH 的升级。

因为服务器不是部署到本地,是通过 SSH 远程连接到服务器进行操作,所以还需要考虑,如果编译安装失败,不能影响旧版本的SSH服务,否则就要去机房接显示器操作了。

OpenSSH 刚开始是做为 OpenBSD 操作系统项目的一部分开发而来,后面因为其强大的功能和安全性,所以后面在标准 OpenSSH 的基础上进行了适配和移植,使得能够在其他类 Unix 系统上运行(portable 版本)

OpenSSH 编译流程:

步骤1:首先检查操作系统的OpenSSL 版本,需要保证 OpenSSL ≥ 1.1.1

OpenSSH的正常运行依赖 OpenSSL 或 LibreSSL,所以要编译安装,需要保证版本满足要求:

  • 若系统使用的是 OpenSSL,需要保证 OpenSSL ≥ 1.1.1(常见Linux系统用的都是OpenSSL)
  • 若系统使用的是 LibreSSL ,需要保证 LibreSSL ≥ 3.1.0(OpenBSD 默认就是 LibreSSL)

步骤2:下载 OpenSSH 的源码并上传到服务器解压

下载OpenSSH 源码的时候要注意,OpenSSH 有两个源码版本:

  • OpenBSD 版本:只能 OpenBSD 系统使用,特征就是源码包不携带p后缀。
  • 可移植版本:增加了平台兼容性代码,可以在非OpenBSD系统上运行,特征就是源码包会携带p后缀

OpenSSH 源码包的下载地址:

  • OpenSSH 官网:https://www.openssh.org/( 官网提供多个不同地区的镜像站点来下载源码包,选择一个合适的就行了)
  • 阿里云下载地址:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

步骤3:生成 Makefile 文件

./configure --prefix=/usr/local/ssh_10.2  --sysconfdir=/etc/ssh_10.2

OpenSSH 常用的参数如下:

  • --prefix:指定openssh的程序存放路径,不指定默认就是 /usr/local;
  • --exec-prefix:指定可执行程序的存放位置,不指定默认就是 --prefix 指定路径下的bin 和 sbin 目录;
  • --sysconfdir:指定配置文件存放路径,如果该目录下有文件,不会覆盖;不指定默认在 PREFIX/etc
  • --sbindir:指定需要管理员权限才能执行的二进制文件路径,也就是sshd的位置,默认在EPREFIX/sbin
  • --bindir:指定普通用户都有权限执行的二进制文件路径,也就是ssh、scp等的位置,默认在EPREFIX/bin
  • --with-pid-dir:指定pid文件的路径,不指定默认是 /var/run/sshd.pid

步骤4:编译源码和安装

make -j$(nproc) && sudo make install

步骤5:修改 ssh 服务的配置文件

因为需要和当前系统上旧版本的 OpenSSH 服务并行运行,所以新版本的配置文件中,一般需要修改以下几个字段:

  • Port 2222 # 指定ssh服务使用的端口号,不要和现有的ssh服务监听的端口冲突。
  • PidFile /var/run/sshd.pid # 指定主进程pid文件的路径
  • UseDNS no # 禁用DNS反向查找,优化连接速度
  • GSSAPIAuthentication no # 禁用GSSAPI认证,优化连接速度

步骤6:准备 service 服务的配置文件

# /etc/systemd/system/ssh_10.2.service
[Unit]
Description=OpenSSH Server 10.2
After=network.target
Wants=network.target[Service] 
Type=notify
ExecStartPre=/usr/local/ssh_10.2/sbin/sshd -t -f /etc/ssh_10.2/sshd_config
ExecStart=/usr/local/ssh_10.2/sbin/sshd -D -f /etc/ssh_10.2/sshd_config
ExecReload=/usr/local/ssh_10.2/sbin/sshd -t -f /etc/ssh_10.2/sshd_config
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
RestartSec=3s[Install]
WantedBy=multi-user.target

因为编译源码的时候使用 --sysconfdir 指定了配置文件默认路径,所以这里不使用 -f 指定路径也可以,加了更直观而已。

sshd -t :检查配置文件的语法是否正确

sshd -D:sshd默认是以守护进程的模式运行,sshd -D 是用于 systemd 管理模式,让 sshd 不要 fork,而是在前台运行,便于 systemd 追踪

/bin/kill -HUP $MAINPID:用来支持 systemctl reload ssh 操作,修改配置文件后,执行这个命令可以让配置生效。

KillMode=process:就是重启或停止ssh服务的时候,已经创建的ssh连接不会受到影响。

步骤7:检查新版本 OpenSSH 服务正常后,停止旧版本OpenSSH

新版本 OpenSSH 服务正常运行后,旧版本不要删除,只要禁止旧服务自动启动即可,等完全稳定后再考虑清楚旧版本OpenSSH的相关文件。

防止 SSH 一旦坏了后无法登录服务器,这样还要跑到机房里面去插显示器操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/973237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纵观当代现状,70年代出生的人,可能别具一格

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891对“70年代出生人群的别具一格”这一现象给出绝对确定性的因果分析。 历史相位的独特烙印 出生环境的因果特殊性 70年代出生者 = 成长于理想主义巅峰期(70-80…

#题解#洛谷 P4375 Out of Sorts G #离散化#

P4375 [USACO18OPEN] Out of Sorts G - 洛谷 分析注意到排序跟只跟数据的序相关,我们将原始数据离散化,并将数值更新为序不难注意到:每次moo只冒泡一次,对于每一个前缀子区间,会将较大的冒泡到末尾;由此不难想到…

hbase上如何导入python包

在 Hbase 上导入 Python 包(如 pandas、numpy、matplotlib 等)通常需要借助 Hadoop 的 YARN 环境 或 Hbase 的 HDFS 存储,因为 Hbase 本身是一个基于 HDFS 的分布式存储系统,其数据存储在 HDFS 上,而 Python 通常…

轻薄手机推荐:不止于轻,2025 旗舰体验榜 - 详解

轻薄手机推荐:不止于轻,2025 旗舰体验榜 - 详解2025-11-22 16:29 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displa…

Git为什么要有submodule呢?

我们的项目中有一个子模块,所以导致经常更新master分支之后还需要对submodule进行一定的操作。所以我时常疑惑为什么会有这个东西呢?为什么一定要用子模块而不能把整个子模块加入我们的代码中呢? 其实主要解决的是这…

征程 6E/M 计算平台部署指南

1. 前言 本文旨在提供 征程 6E/M 计算平台的部署指南,将会从硬件、软件两部分进行介绍,本文整理了我们推荐的使用流程,和大家可能会用到的一些工具特性,以便于您更好地理解工具链。某个工具具体详细的使用说明,还…

2025年重庆废气收集处理机构权威推荐榜单:废气处理/废气治理/废气处理设备源头机构精选

在重庆工业绿色转型的浪潮中,专业的废气收集处理机构正凭借先进技术和服务经验,为制造业的可持续发展保驾护航。 随着环保要求的不断提高,重庆作为中国西部重要的工业基地,废气治理市场需求持续增长。据调研数据显…

详细介绍:第三章 FreeRTOS 任务相关 API 函数

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数据库的安全与保护(下) - 实践

数据库的安全与保护(下) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

2025年口碑好的江苏婚纱照/婚前影像/小众婚纱照/园林婚纱照/光影婚纱照/外景婚纱照/秀禾婚纱照/中式婚纱照/结婚照品牌推荐:弥素摄影领跑

摘要 江苏婚纱照行业在2025年持续蓬勃发展,随着新人对个性化、高品质拍摄需求的增长,小众高质感品牌逐渐成为市场新宠。本文基于行业数据和用户口碑,为您推荐排名前十的江苏婚纱照品牌,并提供详细对比,帮助您做出…

2025年江苏婚纱照/婚前影像/小众婚纱照/园林婚纱照/光影婚纱照/外景婚纱照/秀禾婚纱照/中式婚纱照/结婚照品牌口碑推荐榜:弥素摄影领跑行业

摘要 江苏婚纱照行业近年来蓬勃发展,新人对个性化、高品质拍摄需求日益增长。本文基于行业数据和用户反馈,综合评选出口碑前十的江苏婚纱照品牌,其中淮安弥素摄影有限公司以卓越的服务和原创技术位居榜首。文章提供…

打印机字体漏洞分析:CVE-2024-12649技术深度解析

本文深入分析Canon打印机TTF解释器漏洞CVE-2024-12649的技术细节,包括恶意字体构造、堆栈溢出利用和DryOS系统安全机制绕过,揭示了通过打印文档实现代码执行的攻击链。CVE-2024-12649:Canon TTF解释器漏洞分析 漏洞…

2025年11月22日

系统总结了后半学习的注意事项并完成了当下比较急需的任务

2025年德商数控母线加工机实力厂家权威推荐榜单:德商母线加工机/德商铜排加工机/德商母排加工机源头厂家精选

在智能电网建设与新能源行业快速发展的背景下,德商系列数控母线加工机以其高精度、高效率及卓越的稳定性,正成为电力设备制造企业提升生产效率的关键装备。 高端母线加工机能够实现冲孔、剪切、折弯等多道工序一次性…

【Java后端进行ai coding实践系列】如何使用ai coding达成计划任务增删改查

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025-11-21 hetao1733837的刷题记录

2025-11-21 hetao1733837的刷题记录2025-11-21 hetao1733837的刷题记录 LG14415/LOJ3004 [JOISC 2015] Inheritance 原题链接1:[JOISC 2015] Inheritance 原题链接2:「JOISC 2015 Day 4」Inheritance 分析 呃……居然…

2025 最新腻子粉厂家推荐!环保与性能双优腻子粉品牌排行榜,涵盖母婴级 / 工程级产品权威测评儿童级健康腻子粉/工程腻子粉/工程腻子粉施工/建筑腻子粉公司推荐

引言 在墙面装饰基层处理中,腻子粉的品质直接决定装饰效果与使用寿命,而市场产品良莠不齐,环保不达标、粘结力不足等问题频发。为精准筛选优质产品,本次榜单依托国际涂料协会(ECCA)最新测评标准,结合全球建材质…

java freemarker(ftl)模板填充导出PDF,支持中文乱码

添加依赖<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.32</version></dependency><dependency><group…

2025年广东洁净度检测公司权威推荐榜单:广东医院(诊所)洁净环境检测/广东空气净化器检测平台/广东新风机检测服务机构精选

在生物医药、电子半导体与医疗卫生等行业,生产与研发环境的洁净度直接关系到产品质量与安全。专业洁净度检测正成为保障产业高质量发展的关键环节。 洁净度检测通过对空气中悬浮粒子、微生物浓度以及相关环境参数的精…

C# Avalonia 18- ControlTemplates - FlipPanelTest

C# Avalonia 18- ControlTemplates - FlipPanelTestFlipPanel2类是负责控制逻辑。 FlipPanel2.csusing Avalonia; using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalonia.Controls.Metadata; us…