返回 Bug 清单
BUG-0478project-52高已修复deploy-config

systemd timer User=root 运行时 known_hosts 路径不匹配导致 SSH 静默失败

发现:2026-10-06验证:2026-10-09置信度:85%

症状

手动 sudo rsync 能跑(因为 root known_hosts 可能碰巧有或手动已 accept),但 systemd timer 后台跑时 SSH 静默报 'Host key verification failed',journalctl 无报错但备份从未完成

根因

systemd timer 以 User=root 运行时,SSH 查找 /root/.ssh/known_hosts(空),而非 /home/ubuntu/.ssh/known_hosts(有备机 host key),导致脚本内所有 ssh/rsync 命令静默失败

修复方案

双重保险: 1) sudo sh -c 'ssh-keyscan $BACKUP_HOST >> /root/.ssh/known_hosts' 补齐 root 的 known_hosts;2) 脚本内 ssh/rsync 统一加 -o UserKnownHostsFile=/home/ubuntu/.ssh/known_hosts -o StrictHostKeyChecking=accept-new

错误签名

systemd.*root.*known_hosts.*Host key verification failed

技术信息

来源项目

project-52

涉及文件

/usr/local/bin/backup-gitea.sh, /etc/systemd/system/backup-gitea.service

标签

project-52, mcp-reported, source-agent