当前位置:首页>Linux>CentOS 7 / Kylin Linux V10 升级 openssh 10.3p1

CentOS 7 / Kylin Linux V10 升级 openssh 10.3p1

  • 2026-10-11 08:02:04
CentOS 7 / Kylin Linux V10 升级 openssh 10.3p1

CentOS 7 / Kylin Linux V10 升级 openssh 10.3p1

💡

注意:为了避免升级 SSH 时无法远程登录,建议先启用 Telnet 服务 作为备用连接方式。 CentOS 7 默认 OpenSSH 版本是 7.x,升级到 10.3p1 需要 源码编译,并且优先升级 OpenSSL 3.x 使用,否则 TLS/加密算法可能受限。

OpenSSL 升级参考:

CentOS 7/麒麟V10 升级 OpenSSL 3.6.1 完整指南

其他版本OpenSSH 升级参考:

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

CentOS 7 OpenSSH 10.2p1 升级全攻略(含离线安装与回退方案)

OpenSSH 10.2p1一键升级脚本(可 ansible 批量升级)


#
📋 适用范围

本教程主要针对 CentOS 7 和 Kylin Linux V10 系统编写,但以下 Linux 发行版也可参考本教程进行 OpenSSL 升级,可能有区别的地方是安装依赖那块:

发行版
备注
CentOS 8 / RHEL 8
依赖安装命令类似,推荐使用 dnf 代替 yum
Ubuntu 18.04+ / Debian 10+
依赖安装使用 apt,编译步骤相同
Fedora 30+
使用 dnf 安装依赖,编译步骤相同
openEuler 20.03+
依赖安装命令与 CentOS 7 类似
SUSE Linux Enterprise Server
依赖安装使用 zypper,编译步骤相同
💡

💡 提示:不同发行版的依赖包名称可能略有差异,安装依赖时请根据实际情况调整命令。


一、安装并启用 Telnet 服务

#
1. 安装 Telnet 服务

yum install -y telnet-server telnet xinetd

#
2. 配置 Telnet

cat <<EOF > /etc/xinetd.d/telnetservice telnet{    flags           = REUSE    socket_type     = stream    wait            = no    user            = root    server          = /usr/sbin/in.telnetd    log_on_failure  += USERID    disable         = no}EOF

#
3. 启动 xinetd 服务

💡

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

systemctl enable xinetdsystemctl start xinetdsystemctl status xinetd

#
4. 测试 Telnet

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

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


二、准备工作

💡

重要提醒:安装完成 SSH 服务并测试可以正常登录以后,一定要彻底关闭 Telnet 服务。

#
1. 确认系统版本

cat /etc/centos-release

示例输出:

CentOS Linux release 7.9.2009

#
2. 查看当前 OpenSSH 版本

ssh -V

示例输出:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

#
3. 安装编译依赖

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

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


三、下载 OpenSSH 10.3p1 源码

cd /tmpwget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.3p1.tar.gztar -zxvf openssh-10.3p1.tar.gzcd openssh-10.3p1   ## 官方版本目录命名疑似问题

四、配置编译选项

💡

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

#
1. 备份并卸载默认 SSH

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

#
2. 配置源码编译

./configure \  --prefix=/usr/local/openssh-10.3p1 \  --sysconfdir=/etc/ssh \  --with-ssl-dir=/usr/local/openssl-3.6.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 密码

五、编译与安装

# 编译make -j$(nproc)# 配置权限chmod 600 /etc/ssh/ssh_host_*chown root.root /etc/ssh/ssh_host_*# 安装make installcp -p contrib/redhat/sshd.init /etc/init.d/sshdchmod +x /etc/init.d/sshd# 配置允许 root 登录(根据需要)echo'PermitRootLogin yes' >> /etc/ssh/sshd_configecho'UsePAM yes' >> /etc/ssh/sshd_configmv /etc/pam.d/sshd.bak-2026 /etc/pam.d/sshd# 创建软连接ln -s /usr/local/openssh-10.3p1/sbin/sshd /usr/sbin/sshdln -s /usr/local/openssh-10.3p1/bin/ssh /usr/bin/sshln -s /usr/local/openssh-10.3p1/bin/ssh-keygen /usr/bin/ssh-keygenln -s /usr/local/openssh-10.3p1/bin/ssh-keyscan /usr/bin/ssh-keyscanln -s /usr/local/openssh-10.3p1/bin/ssh-agent /usr/bin/ssh-agentln -s /usr/local/openssh-10.3p1/bin/scp /usr/bin/scpln -s /usr/local/openssh-10.3p1/bin/sftp /usr/bin/sftpln -s /usr/local/openssh-10.3p1/bin/ssh-add /usr/bin/ssh-addcp contrib/ssh-copy-id /usr/bin/   # 此步骤再 openssh 编译目录操作chmod +x /usr/bin/ssh-copy-id

六、启动 SSH 服务

systemctl daemon-reloadsystemctl enable sshdsystemctl restart sshdsystemctl status sshd

七、验证升级

ssh -V

输出示例:

OpenSSH_10.3p1, OpenSSL 3.6.1 27 Jan 2026

检查 SSH 服务状态:

ss -tnlp | grep sshd

八、离线升级

注意:离线安装包只有centos7系统的,麒麟系统需要自己下载。

  • 百度网盘下载:https://pan.baidu.com/s/1z7Zw9YRXrCfroGFN_rWYBw?pwd=i23q 

  • 提取码:i23q 

#
1. 解压

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

#
2. 安装依赖包

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

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


九、回退操作

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

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

十、关闭 Telnet 服务

#
1. 停止 Telnet 服务

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

#
2. 禁止开机自启

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

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

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

#
4. 验证 Telnet 是否关闭

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

总结

本文详细介绍了 CentOS 7 系统升级 OpenSSH 到 10.3p1 版本的完整步骤,包括:

  1. 1备用连接:通过 Telnet 服务确保升级过程中不会失去远程连接
  2. 2升级流程:从准备工作、源码下载、编译安装到服务启动的完整步骤
  3. 3离线升级:提供了离线安装包,方便无网络环境使用
  4. 4回退方案:详细的回退步骤,确保在升级失败时可以快速恢复
  5. 5安全加固:升级完成后彻底关闭 Telnet 服务,保障系统安全

通过本文的步骤,您可以安全、可靠地将 CentOS 7 系统的 OpenSSH 升级到最新版本,提升系统安全性和稳定性。

温馨提示:操作前请务必备份重要数据,建议在测试环境中先进行演练,确保熟悉整个流程后再在生产环境中操作。

最新文章

随机文章