我已经编写了一个BASH脚本,该脚本在用户模式下使用Anacron自动完成。
该脚本在SSH模式下执行rsync
以同步文件。
该脚本应使用用户的默认(密码加密)SSH密钥对SSH服务器进行身份验证。
如果我直接从终端运行它,这是按预期工作的。 弹出众所周知的对话框,提示用户解锁SSH密钥。 但是,如果它被Anacron触发,则不会。
我可以确认Anacron在用户模式下执行脚本,因为whoami
返回正确的用户名。但是对话框没有显示出来。代替
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
打印出来。实际上,指定的路径并不存在。
我的anacrontab看起来像这样:
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# period delay job-identifier command
1 1 user.backup /usr/local/bin/backup.sh -p ~/.nb/ssh.config >> /tmp/user.backup.log 2>&1
Anacron是从~/.profile
触发的
我的猜测是我错过了在anacrontab中为SSH密钥解锁过程设置正确的环境。
我需要做些什么才能让这个过程在这个地方运作?
修改这与https://askubuntu.com/questions/900547/ssh-key-unlock-prompt-from-anacron-task
重复