> 技术文档 > 银河麒麟Kylin V10 (aarch64) 升级 OpenSSH 10.0p2 + OpenSSL 3.5.1 完整指南_openssh10.0p2

银河麒麟Kylin V10 (aarch64) 升级 OpenSSH 10.0p2 + OpenSSL 3.5.1 完整指南_openssh10.0p2

Kylin V10 (aarch64) 升级 OpenSSH 10.0p2 + OpenSSL 3.5.1 完整指南

适用于内核版本 4.19.90-17.ky10.aarch64 的 Kylin Linux Advanced Server V10(ARM64 架构)
严格遵循官方兼容性要求(OpenSSH 10.0p2 官方支持OpenSSL 3.5.1)

升级顺序,必须先升级openssl,然后再升级openssh,建议在测试环境,验证之后,再在生产环境升级。

🛠️一、升级前准备

安装 Telnet 备份通道(防止 SSH 升级失败导致失联),系统默认已安装telnet服务,只需要开启即可:

sudo systemctl enable --now telnet.socket

测试 Telnet 登录成功后,再关闭SSH 服务。

安装编译依赖(默认系统已安装,如果提示缺少,可挂载同版本镜像,安装):

sudo yum groupinstall -y \"Development Tools\"

sudo yum install -y zlib-devel pam-devel perl-IPC-Cmd perl-Data-Dumper

📦二、编译安装 OpenSSL 3.5.1

  1. 下载源码:

wget https://www.openssl.org/source/openssl-3.5.1.tar.gz

tar -xzf openssl-3.5.1.tar.gz

cd openssl-3.5.1

ARM64 专用配置:

./Configure linux-aarch64 --prefix=/usr/local/openssl-3.5.1 --openssldir=/usr/local/openssl-3.5.1 shared

编译安装:

make -j$(nproc)

sudo make install

更新动态链接库:

echo \"/usr/local/openssl-3.5.1/lib64\" | sudo tee /etc/ld.so.conf.d/openssl-3.5.1.conf

sudo ldconfig

验证安装:

/usr/local/openssl-3.5.1/bin/openssl version

# 应输出:OpenSSL 3.5.1 1 Jul 2025

📦三、编译安装 OpenSSH 10.0p2

  1. 下载源码:
  2. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p2.tar.gz

tar -xzf openssh-10.0p2.tar.gz

注意解压出来的目录名,跟版本不一致,但是不影响

cd openssh-10.0p1

  1. ARM64 专用配置(关键!指定 OpenSSL 3.5.1 路径):

./configure \\

--prefix=/usr \\

--sysconfdir=/etc/ssh \\

--with-pam \\

--with-zlib \\

--with-ssl-dir=/usr/local/openssl-3.5.1 \\

--with-md5-passwords \\

--with-privsep-path=/var/lib/sshd

编译安装:

make -j$(nproc)

修复私钥权限:

sudo chmod 600 /etc/ssh/ssh_host_*_key

sudo make install

  1. 验证版本:

ssh -V

# 应输出:OpenSSH_10.0p2, OpenSSL 3.5.1 1 Jul 2025

🔐四、服务配置与安全加固

  1. 移除不兼容选项(OpenSSH 10.0 已移除 GSSAPI 支持):

sudo sed -i \'/^GSSAPIAuthentication/d\' /etc/ssh/sshd_config

sudo sed -i \'/^GSSAPICleanupCredentials/d\' /etc/ssh/sshd_config

重启 SSH 服务:

sudo systemctl daemon-reload

sudo systemctl restart sshd

sudo systemctl enable sshd

🚨五、回滚方案(若升级失败)

恢复旧版 SSH:

sudo yum reinstall -y openssh openssh-server

sudo systemctl restart sshd

恢复 Telnet 备份通道:

sudo systemctl enable --now telnet.socket

✅六、验证与清理

测试 SSH 连接:

ssh localhost

禁用 Telnet 服务(成功后立即关闭):

sudo systemctl disable --now telnet.socket

最终验证:

openssl version

ssh -V

📌关键注意事项

  1. ARM64 架构适配:
    必须使用 linux-aarch64 参数编译OpenSSL 和 OpenSSH,否则会导致运行时崩溃。
  2. 权限严格性:
          SSH 主机密钥文件必须设置为 600,否则服务会拒绝启动。
  3. GSSAPI 移除:
          OpenSSH 10.0+ 已彻底移除 GSSAPI 支持,所有相关配置项必须从 sshd_config 中删除。
  4. 生产环境:
    建议在维护窗口期操作,并提前通知相关团队。测试环境验证无误后再部署到生产环境.
  5. 每天学习一点点,每天受益亿点点!!!点赞关注 V “IT不打烊”,不定时分享IT技术知识

成语接龙