🔹 CentOS 7 升级 OpenSSH 10.0p2 完整教程(含 Telnet 备份)

注意:为了避免升级 SSH 时无法远程登录,建议先启用 Telnet 服务 作为备用连接方式。
CentOS 7 默认 OpenSSH 版本是 7.x,升级到 10.0p2 需要 源码编译,并且优先升级 OpenSSL 3.x 使用,否则 TLS/加密算法可能受限。
OpenSSL 升级教程参考
离线安装方法 先看第八步 执行完成以后在从 下载 OpenSSH 10.0p2 源码 开始


1️⃣ 安装并启用 Telnet 服务

1.1 安装 Telnet 服务

yum install -y telnet-server telnet xinetd

1.2 配置 Telnet

cat <<EOF > /etc/xinetd.d/telnet
service telnet
{flags           = REUSEsocket_type     = streamwait            = nouser            = rootserver          = /usr/sbin/in.telnetdlog_on_failure  += USERIDdisable         = no
}
EOF

1.3 启动 xinetd 服务

默认 /etc/securetty 或 PAM 设置可能禁止 root 通过 Telnet 登录,建议提前创建普通用户并授权 sudo 权限。生产环境应避免 root 远程登录。

systemctl enable xinetd
systemctl start xinetd
systemctl status xinetd

1.4 测试 Telnet

telnet 服务器IP
  • 使用系统账号密码登录
  • 即使 SSH 出问题,也能通过 Telnet 登录服务器

⚠️ 注意:Telnet 明文传输密码,只能在内网使用。SSH 升级完成后,应尽快关闭 Telnet。


2️⃣ 准备工作

切记安装完成ssh服务并测试可以正常登录以后 彻底关闭 telnet 服务

2.1 确认系统版本

cat /etc/centos-release

示例输出:

CentOS Linux release 7.9.2009

2.2 查看当前 OpenSSH 版本

ssh -V

示例输出:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

2.3 安装编译依赖

yum groupinstall -y "Development Tools"
yum install -y wget curl gcc make zlib-devel pam-devel \
libselinux-devel openssl-devel bzip2 gcc-c++ libstdc++* libcap*

如果使用 OpenSSL 3.x,请确保先升级 OpenSSL(推荐路径 /usr/local/openssl-3.5.1)。


3️⃣ 下载 OpenSSH 10.0p2 源码

cd /tmp
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p2.tar.gz
tar -zxvf openssh-10.0p2.tar.gz
cd openssh-10.0p1   ## 官方版本目录命名疑似问题

4️⃣ 配置编译选项

建议在开始安装前先打开至少三个终端窗口 保证卸载ssh服务以后可以继续操作 要是忘记打开也可以telnet登录

4.1 备份并卸载默认 SSH

# 备份配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak-2025
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak-2025# 卸载旧版 SSH
yum -y remove openssh

4.2 配置源码编译

./configure \--prefix=/usr/local/openssh-10.0p1 \--sysconfdir=/etc/ssh \--with-ssl-dir=/usr/local/openssl-3.5.1 \--with-zlib \--with-pam \--with-privsep-path=/var/lib/sshd \--with-md5-passwords

参数说明

  • --prefix:安装目录
  • --sysconfdir:配置文件路径
  • --with-ssl-dir:OpenSSL 目录
  • --with-zlib:启用压缩
  • --with-pam:启用 PAM 认证
  • --with-privsep-path:特权分离目录
  • --with-md5-passwords:兼容 MD5 密码

5️⃣ 编译与安装

# 编译
make -j$(nproc)# 配置权限
chmod 600 /etc/ssh/ssh_host_*
chown root.root /etc/ssh/ssh_host_*# 安装
make install
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd# 配置允许 root 登录(根据需要)
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'UsePAM yes' >> /etc/ssh/sshd_config
mv /etc/pam.d/sshd.bak-2025 /etc/pam.d/sshd# 创建软连接
ln -s /usr/local/openssh-10.0p1/sbin/sshd /usr/sbin/sshd
ln -s /usr/local/openssh-10.0p1/bin/ssh /usr/bin/ssh
ln -s /usr/local/openssh-10.0p1/bin/ssh-keygen /usr/bin/ssh-keygen
ln -s /usr/local/openssh-10.0p1/bin/ssh-keyscan /usr/bin/ssh-keyscan
ln -s /usr/local/openssh-10.0p1/bin/ssh-agent /usr/bin/ssh-agent
ln -s /usr/local/openssh-10.0p1/bin/scp /usr/bin/scp
ln -s /usr/local/openssh-10.0p1/bin/sftp /usr/bin/sftp
ln -s /usr/local/openssh-10.0p1/bin/ssh-add /usr/bin/ssh-add
cp /tmp/openssh-10.0p1/contrib/ssh-copy-id /usr/bin/
chmod +x /usr/bin/ssh-copy-id

6️⃣ 启动 SSH 服务

systemctl daemon-reload
systemctl enable sshd
systemctl restart sshd
systemctl status sshd

7️⃣ 验证升级

ssh -V

输出示例:

OpenSSH_10.0p2, OpenSSL 3.5.1

检查 SSH 服务状态:

ss -tnlp | grep sshd

8️⃣ 离线升级

  • 安装包地址: 百度网盘下载
  • 提取码:up3k

8.1 解压

# 依赖包中包含 telnet 服务和默认 SSH 7.4 服务,方便回退
unzip openssh.zip

8.2 安装依赖包

cd openssh
yum localinstall -y *.rpm  ##  注意这个会安卓所有依赖包 并且telnet服务也会安装上

安装完成后,从 下载 OpenSSH 10.0p2 源码 开始再次执行升级步骤即可。


9️⃣ 回退操作

以为这个测试机为例,只需要重新安装openssh服务即可

## 离线安装包里有ssh7.4的包
cd openssh/openssh  ## 里卖弄有三个包全部安装即可
yum localinstall -y *.rpm## 重启ssh服务
systemctl daemon-reload
systemctl enable sshd
systemctl restart sshd
systemctl status sshd

记得升级完成以后彻底关闭telnet服务

停止 Telnet 服务

systemctl stop xinetd
  • Telnet 是由 xinetd 管理的,所以停止 xinetd 就会停止所有通过它启动的服务,包括 Telnet。

禁止开机自启

systemctl disable xinetd
  • 确保服务器重启后 Telnet 不会自动启动。

删除或禁用 Telnet 配置文件(可选)

mv /etc/xinetd.d/telnet /etc/xinetd.d/telnet.disabled
  • 这样即使 xinetd 启动,也不会加载 Telnet 服务。

验证 Telnet 是否关闭

telnet 127.0.0.1
  • 如果提示 Connection refused 或无法连接,说明已经彻底关闭。

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

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

相关文章

aragfw9.dll aqnky-ef.dll aqua dock.dll apscon~1.dll apropdll.dll app_web_yqnqasrp.dll app_web_

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

rabbitMQ延时队列实现,怎么保证消息的幂等

一、RabbitMQ 延时队列实现方式 基于 TTL&#xff08;Time-To-Live&#xff09; 死信队列&#xff08;Dead Letter Queue&#xff09; 这是最常用的实现方式&#xff0c;核心思路是&#xff1a; (1)消息设置过期时间&#xff08;TTL&#xff09; (2)消息过期后进入绑定的死信队…

前沿技术观察:从AI 时代到量子计算的下一站

前沿技术观察&#xff1a;从AI 时代到量子计算的下一站&#x1f680; 技术的浪潮一波接一波&#xff0c;从 人工智能 到 区块链&#xff0c;再到 边缘计算、元宇宙、量子计算&#xff0c;这些前沿技术正在深刻影响我们的生活与产业格局。 对于开发者和技术爱好者来说&#xff0…

通过Kubernetes安装mysql5服务

以下是清晰、结构化的操作流程优化说明&#xff0c;按步骤梳理从部署到配置持久化、暴露服务的完整过程&#xff1a;一、基础部署&#xff1a;快速验证 MySQL 可用性创建有状态工作负载进入 KubeSphere 项目 → 工作负载 → 有状态副本集 → 创建&#xff0c;选择 通过镜像创建…

【mysql】SQL 中 IS 与 = 的区别:一个 NULL 值引发的思考

SQL 中 IS 与 的区别&#xff1a;一个 NULL 值引发的思考为什么查询结果总是少一条数据&#xff1f;可能是 NULL 在捣鬼在 SQL 查询中&#xff0c;很多开发者都曾遇到过这样的困惑&#xff1a;明明看起来正确的查询语句&#xff0c;返回的结果却总是与预期不符。这往往是因为没…

openGauss笔记

1、安装 直接用docker安装 2、国产化 符合国产化要求 3、客户端 3.1 dbeaver 社区版本&#xff08;25.1.4&#xff09;即可&#xff0c;驱动建议用离线版本&#xff0c;在官网下载最新的&#xff0c;然后在驱动管理里面进行添加本地的jar 3.1.1 驱动配置3.1.2 依赖 需要java版本…

SQL语言增删改查之C与R

本节通关要求1、掌握 SQL 语句对数据库进行的创建 Create 和读取 Retireve 操作的指令&#xff1b;2、多练习&#x1f3ae;说明&#xff1a;操作对象是数据表中的数据行&#xff0c;也就是表中的记录。请明确操作对象&#xff0c;不要误伤友军。背景&#xff1a;create table i…

栈溢出问题

brpc 的 bthread 默认协程栈大小是 128KB&#xff08;非 pthread 模式&#xff09;。如果在一个bthread中&#xff0c;它执行的函数内定义了一个局部变量map&#xff0c;有很多个元素&#xff0c;map的大小超过了128KB&#xff0c;协程会自动申请新的栈空间吗&#xff1f;这里要…

Android之穿山甲广告接入

文章目录前言一、效果图二、实现步骤1.引入库2.build.gradle依赖3.Application初始化3.开屏广告4.插屏广告5.懒人做法总结前言 项目接入广告已经是常见的现象了&#xff0c;但是还有很多朋友或者初学者没有接触过&#xff0c;或者没有接触过穿山甲&#xff0c;今天就来看一下&…

Web开发工具一套式部署Maven/Nvm/Mysql/Redis

前言&#xff1a; 对于一个纯小白且电脑没有任何环境的计算机学生&#xff0c;如何快速跑通Java前后端项目呢&#xff1f; 先附上百度网盘 地址&#xff1a; Web开发工具 。 以下链接来自不同作者&#xff0c;如有侵犯&#xff0c;请联系我删除。 1.Jdk 部署地址&#xff1a…

Deepseek法务提示指令收集

参考网络资料&#xff0c;收集一些法务提示指令&#xff0c;可用于Agent LLM、以及LLM法律相关开发。 https://zhuanlan.zhihu.com/p/22588251815 1 基础指令 1) 身份认证模块 【身份与版本声明】 您是由DeepSeek研发的法律智能辅助系统V4.2版&#xff0c;内核经司法部《生成…

Tiptrans转运 | 免费5国转运地址

Tiptrans 是一家总部位于捷克的国际包裹转运与虚拟地址服务平台&#xff0c;主要提供全球虚拟收货地址&#xff08;英国、德国、香港、美国等&#xff09;&#xff0c;让用户在当地网店购物&#xff0c;再由 Tiptrans 转运到海外。除了物流服务&#xff0c;Tiptrans 也提供虚拟…

STM32手动移植FreeRTOS

&#x1f4e6; 准备工作 获取FreeRTOS源码: 访问 FreeRTOS官网 或其 GitHub仓库 下载最新版内核源码。 你也可以使用Git克隆&#xff08;注意要包含子模块&#xff09;&#xff1a;git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules。 准备STM32基础…

C5仅支持20MHZ带宽,如果路由器5Gwifi处于40MHZ带宽信道时,会出现配网失败

是的&#xff0c;这会导致“怎么都连不上”。结论先说&#xff1a;如果路由器把 5 GHz 固定在 40 MHz&#xff08;或以上&#xff09;带宽&#xff0c;而你的 C5 只支持 5 GHz 的 20 MHz 带宽&#xff0c;那么 STA 连接一定会失败。固件里不可能“把 40 MHz AP 连成 20 MHz”&a…

坚鹏请教DEEPSEEK:请问中国领先的AI智能体服务商有哪些?知行学

坚鹏请教DEEPSEEK&#xff1a;请问中国领先的AI智能体服务商有哪些&#xff1f;深圳知行学教育科技公司名列榜首根据2025年8月底多家权威机构发布的榜单和报告&#xff0c;比如德本咨询&#xff08;DBC&#xff09;的“2025企业级AI Agent应用TOP50”榜单、IDC的《中国AI AGENT…

【开题答辩全过程】以 投票系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

C++异常处理指南:构建健壮程序的错误处理机制

在程序开发的世界里&#xff0c;“错误” 是绕不开的话题。你可能写过一个简单的计算器&#xff0c;却因为用户输入 “50” 而崩溃&#xff1b;也可能在操作数据库时&#xff0c;因为权限不足导致数据读取失败&#xff1b;甚至在申请内存时&#xff0c;因为系统资源耗尽而无法继…

comfUI背后的技术——VAE

第一次知道VAE可能还是许嵩。当然&#xff0c;这里的VAE指的是变分自编码器&#xff08;Variational Autoencoder, VAE&#xff09; Seq2Seq 在 Seq2Seq 框架提出之前&#xff0c;深度神经网络在图像分类等问题上取得了非常好的效果。在其擅长解决的问题中&#xff0c;输入和…

【序列晋升】21 Spring Cloud Gateway 云原生网关演进之路

Spring Cloud Gateway作为Spring生态系统中的核心组件&#xff0c;已成为微服务架构中的首选API网关解决方案。它基于响应式编程模型&#xff0c;提供高性能、可扩展的路由管理和跨领域功能&#xff0c;解决了传统微服务架构中的接口聚合、安全管控和流量控制等核心问题。与此同…

“HEU-AUTO”无线上网使用指南

本文针对笔记本电脑 笔者电脑型号为&#xff1a;2025联想拯救者Y9000p 5060步骤1&#xff1a;点击开始菜单&#xff0c;点击设置&#xff0c;如图步骤2&#xff1a;在Windows设置菜单中&#xff0c;点击“网络和Internet”选项&#xff0c;如下图&#xff1a;步骤3&#xff1a;…