Crontab 对其所有者的文件存在权限问题?权限被拒绝

Crontab 对其所有者的文件存在权限问题?权限被拒绝

我有一个用 shell 脚本编写的非常简单的 cron 作业,它将文件从另一台服务器 scp 到本地。例如,

#!/bin/bash
scp $REMOTE:/$FILE ./

当然,服务器需要私钥才能登录,我有一个配置文件,其中保存了 HostName 和 IdentityFile (~/.ssh/id_rsa,一个带有 600 的 mod)。

但是,cron运行时出现“权限被拒绝”的问题......

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/xxx>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=xxxx>
Message-Id: <20120118235702.33A7B16C03B5@xxx-xxxx-deskbox>
Date: Wed, 18 Jan 2012 18:57:02 -0500 (EST)

Permission denied (publickey).

我到处检查了,它说 crontab 将作为所有者/用户的环境运行。

有人有解决方案吗?谢谢!

答案1

问题解决了。我的 id_rsa 密钥上有一个密码短语。因此,手动运行不需要它,因为该短语在会话中;而 crontab 需要密码短语。删除密码短语

ssh-keygen -p [-P old_passphrase] 

并输入空的新密码;或检查这一页

希望我的回答可以帮助一些程序员节省几个小时的调试时间。

相关内容