首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
友情连接
推荐
autojs
Search
1
charles破解注册码(含windows和mac)最新安装教程「亲测有效」
57 阅读
2
aris常用命令收集
32 阅读
3
【N1和Armbian】一、N1刷Linux系统armbian
31 阅读
4
docker更新现有容器为自动重启
27 阅读
5
[上]JAVA学习系列模块九第五章186.对象数组_基本使用
25 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
模块一
端口
模块五
数据库
模块九
模块四
镜像
模块三
模块六
MySQL
百度网盘
nginx
DaiMaFengZi
累计撰写
590
篇文章
累计收到
10
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
友情连接
推荐
autojs
搜索到
1
篇与
的结果
2026-08-10
银河麒麟系统 OpenSSH 升级至 10.x 实战避坑指南
银河麒麟系统 OpenSSH 升级至 10.x 实战避坑指南⚠️ 核心警告(操作前必读)绝对不要关闭当前的 SSH 连接窗口! 必须保留一个已登录的旧会话作为“救生艇”,直到新终端测试连接成功为止,否则一旦配置错误将导致服务器失联。银河麒麟特性: 在重启 SSH 服务前必须执行 systemctl daemon-reload,否则会出现服务状态异常或配置不生效的提示。PAM 认证模块变更: 从 OpenSSH 10 以下版本升级,必须修改 PAM 加密模块配置(pam_stack.so 已被废弃),这是导致“密码正确却提示 Failed password”的通用致命错误。第一步:升级前准备与备份在操作前,务必备份当前的 SSH 配置文件,以便在出现问题时快速回滚。# 备份 sshd 配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F) # 进入 RPM 包所在目录(假设放在 /root/openssh/) cd /root/openssh/第二步:执行 RPM 升级使用 rpm 命令直接进行升级安装:sudo rpm -Uvh openssh-*.rpm第三步:修复 Host Key 权限(必做)OpenSSH 10.x 对安全性要求极高,如果主机密钥(Host Key)权限过于宽松,sshd 将直接拒绝启动。执行以下命令修正权限和属主:# 1. 确保私钥权限为 600 chmod 600 /etc/ssh/ssh_host_rsa_key chmod 600 /etc/ssh/ssh_host_ecdsa_key chmod 600 /etc/ssh/ssh_host_ed25519_key # 2. 确保对应的公钥权限为 644 chmod 644 /etc/ssh/ssh_host_rsa_key.pub chmod 644 /etc/ssh/ssh_host_ecdsa_key.pub chmod 644 /etc/ssh/ssh_host_ed25519_key.pub # 3. 确保属主正确 chown root:root /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub第四步:清理废弃配置项 (sshd_config)OpenSSH 10 彻底移除了对 SSHv1 协议及相关古老加密算法的支持。旧配置文件中的某些选项会导致 sshd 报错。💡 避坑经验:报错提示的行号(如 155行、157行)并不固定。不要盲目按行号删除,一定要用 sshd -t 命令动态查看报错。# 测试配置文件是否有语法错误或废弃选项 sudo sshd -t常见报错及修复方法:报错 1: /etc/ssh/sshd_config line 157: Deprecated option RhostsRSAAuthenticationsudo sed -i '/^RhostsRSAAuthentication/d' /etc/ssh/sshd_config报错 2: /etc/ssh/sshd_config line 155: Deprecated option RSAAuthenticationsudo sed -i '/^RSAAuthentication/d' /etc/ssh/sshd_config修复后,再次执行 sudo sshd -t,如果没有任何输出,则说明配置文件已完全合法。第五步:重载配置与启动服务(麒麟系统关键步)在银河麒麟系统中,由于 systemd 单元文件或 init 脚本发生了变更,必须重载 daemon 配置。# 1. 重载 systemd 管理器配置(银河麒麟必做!) sudo systemctl daemon-reload # 2. 启动/重启 sshd 服务 sudo systemctl restart sshd.service # 3. 查看服务运行状态 sudo systemctl status sshd.service确认状态为 active (running) 且 22 端口正常监听。第六步:修复 PAM 认证模块(🔥 核心重点)这是从 10 以下版本升级必须修改的部分!旧版系统使用 pam_stack.so,而该模块在现代系统中已被移除。如果不修复,查看日志(journalctl -xeu sshd)会看到 PAM unable to dlopen(/usr/lib64/security/pam_stack.so),导致即使密码正确也无法登录。# 1. 备份旧的 PAM 配置 sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.bak.$(date +%F) # 2. 写入 OpenSSH 10 兼容的标准 PAM 配置 sudo tee /etc/pam.d/sshd << 'EOF' #%PAM-1.0 auth required pam_sepermit.so auth substack password-auth auth include postlogin account required pam_nologin.so account include password-auth password include password-auth session required pam_selinux.so close session required pam_loginuid.so session optional pam_keyinit.so force revoke session include password-auth session include postlogin session required pam_selinux.so open env_params EOF第七步:最终验证1. 验证版本:ssh -V预期输出应包含 OpenSSH_10.x 字样。2. 验证连接(关键):新开一个终端窗口,尝试 SSH 登录服务器。如果能成功输入密码并进入系统 $\rightarrow$ 升级成功。如果提示 Permission denied 或连接断开 $\rightarrow$ 立即回到保留的旧终端窗口,检查 /etc/pam.d/sshd 内容是否写入正确,或恢复备份文件。📝 总结与排错心得关于报错行号: sshd -t 报出的行号只是参考,核心是看它提示 Deprecated option 后面的参数名,用 sed 精准删除即可。关于通用错误: pam_stack.so 缺失是跨大版本升级的“通用错误”,只要是从低版本升到 10.x,这个 PAM 配置文件必须替换。关于 systemctl 警告: 如果启动时提示 Warning: The unit file... changed on disk,不要慌,这只是提醒你执行 systemctl daemon-reload,执行后重启服务即可消除。底线原则: 只要不关闭老的 SSH 会话,哪怕配置改错了、服务起不来,你依然有权限在旧窗口里把备份文件还原,从容救场。
2026年08月10日
1 阅读
0 评论
0 点赞