哪吒探针惊现安全风险?SSH 公钥反复写入排查与解决
最近在圈子(某个技术讨论区)看到有朋友在吐槽,说自己服务器上的哪吒探针好像“中招”了,最明显的表现就是 SSH 公钥在反复写入。
看到这儿,我赶紧去看了眼自己的机器,虽然暂时没发现异常,但这个问题确实值得警惕。这不仅仅是探针能不能用的问题,更关乎服务器的核心安全。今天就来和大家聊聊这到底是怎么回事,以及如果遇到了该怎么排查和解决。
现象分析:公钥反复写入意味着什么?
SSH 公钥被“反复写入”,这绝不是正常软件该有的行为。通常情况下,如果你配置了 SSH 登录,公钥写入 ~/.ssh/authorized_keys 应该是一次性的操作,除非你自己手动修改。
如果发现这个文件在没有操作的情况下频繁变动,或者探针进程在进行写入操作,通常有以下几种可能:
- 探针版本过旧或存在漏洞: 早期版本的哪吒探针或者某些魔改版本,可能因为代码逻辑问题或安全疏漏,被利用执行了非预期的文件操作。
- 凭证泄露或服务器被入侵: 这是最坏的情况。如果你的面板地址、Token 泄露,或者服务器本身其他服务存在漏洞被攻破,攻击者可能会尝试通过写入 SSH 公钥来留后门,方便后续登录。
- 误报或配置冲突: 极少数情况下,可能是监控脚本本身包含了某些备份或同步 SSH 配置的逻辑,导致了误判。
紧急排查步骤
在终端中检查进程和 SSH 配置文件的示意图
如果你怀疑自己的机器也存在这种情况,不要慌,按照下面的步骤一步步来,先把风险控制住。
1. 检查进程与网络连接
首先,查看哪吒探针的进程情况,确认它是否有异常的子进程或文件写入行为。
# 查看探针进程
ps -ef | grep nezha
# 使用 lsof 查看进程打开的文件(留意是否有 authorized_keys 的写入句柄)
lsof -p <进程PID>
同时,检查异常的网络连接,看是否有向未知 IP 发送数据或接收指令。
2. 验证 SSH 公钥文件
检查 authorized_keys 文件的修改时间和内容。
ls -l ~/.ssh/authorized_keys
# 查看最后修改时间是否在你不知情的情况下变动
stat ~/.ssh/authorized_keys
``>
如果发现修改时间非常频繁(比如每几分钟变一次),那绝对有问题。
#### 3. 审计系统日志
系统日志会告诉你很多真相。
```bash
# 查看近期登录日志
lastlog
last
# 查看 auth.log(Debian/Ubuntu)或 secure(CentOS)中关于 SSH 的记录
grep "ssh" /var/log/auth.log | tail -n 50
``>
关注是否有非你本人 IP 的登录尝试,或者成功的密钥登录记录。
### 解决方案与安全加固
既然发现了问题,解决并预防才是关键。
#### 1. 更新或重装探针
哪吒探针是一个开源项目,社区迭代很快。如果你还在用很久以前的版本,**第一件事就是升级**。
* 前往官方 GitHub 仓库发布页,下载最新版的 Agent。
* 停止旧服务,替换二进制文件后重启。
如果你使用的是非官方的魔改版本,建议直接卸载,改用官方原版或经过社区广泛验证的版本。安全性上,开源官方版本通常更有保障。
#### 2. 修改 SSH 配置,锁定文件
为了防止任何进程随意篡改 SSH 公钥,我们可以从系统层面加一把锁。
* **修改文件属性:** 将 `authorized_keys` 设置为不可变(Immutable),即使是 root 用户也不能直接修改或删除,除非先解除属性。
```bash
chattr +i ~/.ssh/authorized_keys
```
如果需要修改公钥,记得先执行 `chattr -i`。
* **禁用密码登录:** 确保服务器只允许密钥登录,降低暴力破解风险。
编辑 `/etc/ssh/sshd_config`,设置:
```
PasswordAuthentication no
```
然后重启 SSH 服务。
#### 3. 重置凭证与检查后门
如果怀疑 Token 或面板密码泄露,务必立即登录哪吒面板后台,重置所有相关 Token,并在服务器端重新配置 Agent 连接。
此外,建议使用工具如 `rkhunter` 或 `chkrootkit` 扫描系统,检查是否有隐藏的后门程序。
### 总结
哪吒探针本身是一个非常好用的服务器监控工具,出现“公钥写入”这种怪事,大概率是版本过旧、使用了不靠谱的魔改版,或者是服务器早已被其他途径入侵。
建议各位持有 VPS 的朋友,定期养成**检查进程、更新软件、备份重要数据**的习惯。监控是为了让我们更放心,别让它成了安全的短板。如果你最近也遇到了类似情况,欢迎在评论区交流处理经验!

评论已关闭