通过 SSH 使用 rsync 的脚本遇到“主机密钥验证失败”,但仅当由 systemd 服务运行时才会发生

通过 SSH 使用 rsync 的脚本遇到“主机密钥验证失败”,但仅当由 systemd 服务运行时才会发生

我正在运行一个 rsync 脚本来将文件从 pi 复制到本地文件夹,该脚本在手动运行时按预期工作,但失败了:

: Host key verification failed.
: rsync error: unexplained error (code 255) at rsync.c(703) [Receiver=3.2.3]

当由服务文件运行时,如果能帮助我解决哪里出了问题,我将不胜感激。

脚本:

#!/bin/bash

experimentNum=$(sshpass -p 'pass' ssh user@IP "cat /source/source.txt")

mkdir -p /dest/$experimentNum

sshpass -p 'pass' rsync -zaP user@IP:/source/ /dest

sshpass -p 'pass' ssh user@IP sudo find /source/ -mtime +14 -daystart -delete

服务:

[Unit]
Description=backup
StartLimitIntervalSec=0

[Service]
Type=oneshot
ExecStart=/usr/bin/bash /absolute-path/drive_backup.sh
Restart=on-failure
RestartSec=5

答案1

没错,修复起来非常简单,但我忽略了为用户运行服务(在子标题User=user[service]),创建了 ssh 密钥,但我不记得它们是特定于某个用户的!

[Unit]
Description=backup
StartLimitIntervalSec=0

[Service]
Type=oneshot
ExecStart=/usr/bin/bash /absolute-path/drive_backup.sh
Restart=on-failure
RestartSec=5
User=user

相关内容