# 银河麒麟v10高级服务器系统OpenSSH漏洞修复建议

你的当前版本：

```bash
OpenSSH_8.2p1

```

属于：

```text
OpenSSH <= 9.7p1

```

因此从版本范围上看，**在漏洞影响范围内**。

但在麒麟/国产 Linux 中，还需要进一步确认：

> 是否已经做了 backport 安全修复。

因为很多国产系统不会升级主版本号，只会回补 CVE 修复。

---

# 一、先确认是否已修复（非常重要）

执行：

```bash
rpm -q --changelog openssh | grep -Ei "CVE|security"

```

以及：

```bash
rpm -q --changelog openssh-clients | tail -50

```

查看是否出现：

```text
CVE-2024-6387
CVE-2024-6409
scp
command injection

```

或者类似：

```text
backport security fix

```

---

# 二、确认安装包版本（重点）

执行：

```bash
rpm -qa | grep openssh

```

例如可能看到：

```text
openssh-8.2p1-12.ky10
openssh-clients-8.2p1-12.ky10

```

关键是：

```text
-12.ky10

```

这种发行版补丁号。

如果补丁号较老，一般说明未修复。

---

# 三、推荐修复方案（麒麟V10）

## 直接升级 openssh

执行：

```bash
yum clean all
yum makecache
yum update openssh openssh-clients openssh-server

```

或者：

```bash
dnf update openssh*

```

更新后再次查看：

```bash
ssh -V

```

以及：

```bash
rpm -qa | grep openssh

```

---

# 四、如果仓库没有更新包

说明：

- 厂商暂未发布补丁
- 或未启用安全源

可先执行：

```bash
yum repolist

```

确认：

- update
- updates
- security

仓库是否启用。

---

# 五、临时缓解（生产环境建议立即做）

即使没法升级，也建议立即加固。

---

## 1. 禁止使用 scp（最有效）

因为漏洞点就在：

```text
scp.c

```

建议：

- 全部改为 `sftp`
- 或 `rsync`

例如：

```bash
rsync -avz /data user@host:/backup/

```

---

## 2. 限制 SSH 登录 IP

例如：

```bash
firewall-cmd --permanent --add-source=你的办公IP
firewall-cmd --reload

```

---

## 3. 禁止 root 登录

编辑：

```bash
vi /etc/ssh/sshd_config

```

修改：

```text
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

```

重启：

```bash
systemctl restart sshd

```

---

## 4. 开启 Fail2ban（推荐）

防暴力破解：

```bash
yum install fail2ban -y

```

---

# 六、该漏洞的真实风险

这个漏洞：

## 触发条件

通常需要：

- 用户主动执行 scp
- 连接恶意 SSH 服务端

或者：

- 中间人攻击

因此：

## 风险级别

<table id="bkmrk-%E5%9C%BA%E6%99%AF-%E9%A3%8E%E9%99%A9-%E5%86%85%E7%BD%91%E9%9A%94%E7%A6%BB%E7%8E%AF%E5%A2%83-%E4%B8%AD-%E5%8F%AF%E8%AE%BF%E9%97%AE%E4%BA%92%E8%81%94"><thead><tr><th>场景</th><th>风险</th></tr></thead><tbody><tr><td>内网隔离环境</td><td>中</td></tr><tr><td>可访问互联网</td><td>高</td></tr><tr><td>经常使用 scp 拉文件</td><td>高</td></tr><tr><td>自动化脚本大量 scp</td><td>很高</td></tr></tbody></table>

---

# 七、生产环境推荐方案（你现在最适合）

建议你按下面顺序处理：

## 第一优先级

立即：

```bash
yum update openssh*

```

---

## 第二优先级

停用：

```text
scp

```

改：

```text
sftp / rsync

```

---

## 第三优先级

加固 sshd：

```text
禁止root
密钥登录
限制IP

```

---

# 八、建议你再执行两个命令（可直接发我）

请把输出发我，我可以直接帮你判断：

```bash
rpm -qa | grep openssh

```

以及：

```bash
rpm -q --changelog openssh-clients | tail -30

```

我可以进一步帮你确认：

- 是否真的存在漏洞
- 是否已被厂商修复
- 是否只是“版本号误报”
- 给你最小化修复方案（不影响业务）

你这个扫描报告里写的：

```text
OpenSSH 命令注入漏洞（CVE-2020-15778）

```

这才是你真正需要处理的漏洞。

前面那个：

```text
CVE-2023-51385

```

不是同一个漏洞。

---

# 一、CVE-2020-15778 是什么

这是 OpenSSH `scp` 的经典命令注入漏洞。

影响版本：

```text
OpenSSH <= 8.3p1

```

你的版本：

```text
OpenSSH_8.2p1

```

确实命中影响范围。

---

# 二、漏洞原理

漏洞位于：

```text
scp.c

```

scp 在处理：

```text
目标文件名
远程路径
特殊字符

```

时没有严格过滤 shell 元字符。

攻击者可构造：

```bash
` ; & | $( )

```

等特殊字符实现：

- 本地命令执行
- 命令注入

---

# 三、关键问题：你现在是否已经修复？

你当前 changelog 里：

```text
没有出现 CVE-2020-15778

```

这说明：

❌ 目前无法证明已修复。  
❌ 大概率确实存在。  
✅ 扫描器这次不是误报。

---

# 四、为什么之前那个 patch 不算

你已有：

```text
CVE-2023-51385

```

它只是：

```text
后续加强过滤

```

但：

```text
不能完全等价替代 CVE-2020-15778 官方修复

```

审计方一般不会认可。

---

# 五、官方修复方式

OpenSSH 官方在：

```text
OpenSSH 8.4p1

```

中修复了：

```text
CVE-2020-15778

```

所以理论上：

```text
升级 >= 8.4p1

```

即可。

---

# 六、你当前最现实的修复方案（麒麟环境）

国产系统不能直接编译覆盖 openssh。

否则：

- sshd 可能无法启动
- PAM 认证损坏
- 国密支持丢失
- 被等保判违规

因此：

# 推荐方案

## 方案1（推荐）

联系麒麟源升级：

```bash
yum update openssh*

```

然后查看：

```bash
rpm -q --changelog openssh | grep 15778

```

如果出现：

```text
fix CVE-2020-15778

```

即可关闭漏洞。

---

# 七、如果官方源没有补丁（很常见）

这是国产系统最常见情况。

因为：

```text
8.2p1-16.p18

```

已经是较新的 KY10 patch level。

但仍未 backport：

```text
15778

```

---

# 八、生产环境临时缓解（审计通常接受）

因为：

```text
漏洞只影响 scp

```

不影响：

- ssh
- sftp
- rsync

所以可以：

---

## 1. 禁止 scp（最重要）

这是官方推荐缓解。

### 方法：

限制用户使用：

```bash
alias scp='echo "scp disabled due to CVE-2020-15778"; false'

```

或者：

```bash
chmod 750 /usr/bin/scp

```

更严格：

```bash
chmod 700 /usr/bin/scp
chown root:root /usr/bin/scp

```

---

## 2. 全面改用 rsync

例如：

```bash
rsync -avz /data user@host:/backup/

```

---

## 3. 或改用 sftp

例如：

```bash
sftp user@host

```

---

# 九、审计/漏洞管理如何写（很关键）

很多单位最后采用：

```text
缓解方案 + 风险接受

```

因为：

- 厂商没提供补丁
- 业务不能升级 OpenSSH

这是很常见的。

---

# 十、给你一个“整改说明”模板（可直接交付）

漏洞名称：OpenSSH 命令注入漏洞（CVE-2020-15778）

漏洞影响：  
OpenSSH scp 模块在处理特殊字符时存在命令注入风险。

当前环境：  
系统为银河麒麟 V10，当前 OpenSSH 版本为：  
OpenSSH\_8.2p1-16.p18.ky10.x86\_64

核查情况：  
当前厂商补丁中未发现 CVE-2020-15778 修复记录。

整改措施：

1. 已停止使用 scp 文件传输方式；
2. 已统一改为 rsync / sftp；
3. 已限制 scp 二进制执行权限；
4. 已加强 SSH 登录访问控制；
5. 持续关注麒麟官方安全补丁更新。

整改结果：  
漏洞利用条件已被阻断，风险得到有效缓解。

---

# 十一、你现在最推荐的操作

## 立刻执行（推荐）

### 禁用 scp

```bash
chmod 750 /usr/bin/scp

```

---

### 改用 rsync

```bash
yum install rsync -y

```

---

### 查看是否有官方补丁

```bash
yum update openssh*

```

更新后：

```bash
rpm -q --changelog openssh | grep 15778

```

---

# 十二、不要做的事（非常重要）

不要：

```text
源码编译 OpenSSH 9.x 覆盖系统

```

在麒麟上极容易导致：

- ssh 登录失效
- PAM 崩溃
- 国密模块异常
- 无法远程连接

生产环境风险很大。