银河麒麟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
- 下载源码:
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
- 下载源码:
- 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
- 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
- 验证版本:
ssh -V
# 应输出:OpenSSH_10.0p2, OpenSSL 3.5.1 1 Jul 2025
🔐四、服务配置与安全加固
- 移除不兼容选项(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
📌关键注意事项
- ARM64 架构适配:
必须使用 linux-aarch64 参数编译OpenSSL 和 OpenSSH,否则会导致运行时崩溃。 - 权限严格性:
SSH 主机密钥文件必须设置为 600,否则服务会拒绝启动。 - GSSAPI 移除:
OpenSSH 10.0+ 已彻底移除 GSSAPI 支持,所有相关配置项必须从 sshd_config 中删除。 - 生产环境:
建议在维护窗口期操作,并提前通知相关团队。测试环境验证无误后再部署到生产环境. -
每天学习一点点,每天受益亿点点!!!点赞关注 V “IT不打烊”,不定时分享IT技术知识