我写了一个简单的脚本,每天晚上向开发人员发送svn活动日志。到目前为止,我已经在svn仓库的同一台机器上运行它,所以我不必担心身份验证,我只能使用svn的file:///地址样式。ssh-agent和crontab - 有没有一种很好的方法让这些人见面?
现在我在家用电脑上运行脚本,访问远程存储库,所以我必须更改为svn + ssh://路径。使用ssh-key很好的设置,我不需要在正常情况下输入访问svn仓库的密码。
但是,crontab没有访问我的ssh-keys/ssh-agent。我读过关于这个问题在网络上几个地方,而且它也提到在这里,没有分辨率:
Why ssh fails from crontab but succedes when executed from a command line?
我的解决办法是把它添加到脚本顶部:
### TOTAL HACK TO MAKE SSH-KEYS WORK ###
eval `ssh-agent -s`
这似乎在MacOSX 10.6下工作。
我的问题是,这有多糟糕,还有更好的办法吗?
我很惊讶,但我却认为答案这是在这里: http://serverfault.com/questions/108798/ssh-passphrase-remembered-in-macosx-snow-leopard 我猜这是一个密码的组合存储在系统钥匙串,并添加了ssh-keys直到系统注销。 但这只是一个猜测。感谢您关于杀死cron ssh-agent进程的提示! – khedron 2010-02-05 19:45:30
投票你,因为我有大约十几个ssh-agent进程在后台运行,在我昨晚测试之后。谢谢! – khedron 2010-02-05 19:55:40