从 systemd 调用时 ssh 不起作用

Tho*_*mas 1 linux ssh systemd

我正在尝试编写一个脚本来将笔记本电脑上的文件夹同步到我的 NAS。从命令行调用时,脚本运行良好。我已经尝试将脚本设置为使用 systemd 自动运行。但是ssh登录有问题。虽然从命令行运行脚本时它工作正常,但我收到了权限被拒绝的错误。

到目前为止,这是我尝试缩小问题范围的方法:

脚本/home/tikey/scripts/nas_sync_photos_to_nas.sh

#!/bin/bash
set -x
ssh tikey@192.168.17.200 -v -i /home/tikey/.ssh/id_rsa ls -la rsync_laptop
Run Code Online (Sandbox Code Playgroud)

要使用 systemd 运行脚本,我已将文件sync-photos-to-nas.service放入~/.config/systemd/user/

[单元]
说明=同步图片到 nas
[服务]
ExecStart=/home/tikey/scripts/nas_sync_photos_to_nas.sh

从命令行运行脚本工作正常。不幸的是,使用 systemd 运行脚本不起作用。我已经运行了 systemd 服务systemctl --user start sync-photos-to-nas.service。然后,使用journalctl --user-unit sync-photos-to-nas,我得到:

...
debug1:主机 '192.168.17.200' 已知并且与 RSA 主机密钥匹配。
debug1:在 /home/tikey/.ssh/known_hosts:2 中找到密钥
debug1:在 4294967296 个块后重新加密
debug1: SSH2_MSG_NEWKEYS 发送
debug1:期待 SSH2_MSG_NEWKEYS
debug1:在 4294967296 个块后重新加密
debug1:收到 SSH2_MSG_NEWKEYS
debug1:收到 SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的身份验证:publickey、password、keyboard-interactive
debug1:下一个身份验证方法:publickey
debug1:提供 RSA 公钥:/home/tikey/.ssh/id_rsa
debug1:服务器接受密钥:pkalg ssh-rsa blen 535
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1:下一个身份验证方法:键盘交互
debug1:可以继续的身份验证:publickey、password、keyboard-interactive
debug1:下一个身份验证方法:密码
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1:可以继续的身份验证:publickey、password、keyboard-interactive
权限被拒绝,请重试。
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1:可以继续的身份验证:publickey、password、keyboard-interactive
权限被拒绝,请重试。
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1:可以继续的身份验证:publickey、password、keyboard-interactive
debug1:没有更多的身份验证方法可以尝试。
sync-photos-to-nas.service:主进程退出,代码=退出,状态=255/n/a
sync-photos-to-nas.service:单元进入失败状态。
同步照片到 nas.service:失败,结果为“退出代码”。

有谁知道问题可能是什么?

Jak*_*uje 5

debug1: read_passphrase: can't open /dev/tty: No such device or address

日志说您的私钥已加密,在您输入密码之前客户端无法使用它。要么使用未加密的密钥,要么使用sshpass.