cron任务中奇怪的ssh问题
H_Y_K 2011-02-23 04:09:52 最近写了一个自动更新代码的脚本auto_make,内容如下:
#!/bin/bash
eval $(ssh-agent)
/usr/local/bin/auto_ssh_add #auto_ss_add是一个expect脚本,用来自动输入ssh密码
/usr/bin/keychain id_rsa
. ~/.keychain/$HOSTNAME-sh
cd /home/....../test/
rrdt update #rrdt是用python写的脚本,用来从服务器批量更新test目录下的所有git仓库
当我在手动在命令行里面执行auto_make脚本时,一切正常;
而当我把auto_make作为cron定时任务时,就出现这样的问题:在执行从服务器更新代码的git命令(使用了ssh协议),一直提示下面的错误:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
['git', 'fetch', 'origin'] failed in module ............
我能确定auto_ssh_add脚本执行ssh-add肯定成功了,但是接着要用到ssh密钥的时候,好像和没有执行过ssh-add一样,非常奇怪,不知道有没有高手遇到或解决过这样的问题呢。