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一样,非常奇怪,不知道有没有高手遇到或解决过这样的问题呢。


...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinshg 2011-02-23
  • 打赏
  • 举报
回复
我的也出现同样的问题,怎么回事呢?
H_Y_K 2011-02-23
  • 打赏
  • 举报
回复
另注:在cron任务执行auto_make中的下面两行命令之后,SSH_AUTH_SOCK和SS_AGENT_PID两个环境变量是正确的:
/usr/bin/keychain id_rsa
. ~/.keychain/$HOSTNAME-sh
H_Y_K 2011-02-23
  • 打赏
  • 举报
回复
source ~/.profile添加过,问题依旧
justkk 2011-02-23
  • 打赏
  • 举报
回复
在脚本的首行之后添加
. ~/.profile

试试看

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧