Eu tenho uma cópia local de um repositório Bitbucket em um dos meus servidores (sob o rob do usuário) e criei um script que é executado a cada hora no cron e tenta fazer com que o & atualize a cópia local. O problema que estou tendo é que hg pull
falha, mesmo quando eu sigo o mesmo procedimento fora do cron ele funciona bem.
Eu configurei uma chave ssh para acessar o Bitbucket da maneira normal (ou seja, segui o guia nos documentos do Bitbucket ) e, em seguida, o repositório foi inicialmente clonado com
cd /home/rob
hg clone ssh://[email protected]/robjohncox/tools
O script de atualização em /home/rob/bin/update_tools.sh
é:
#! /bin/bash
cd /home/rob/tools
hg pull >> /tmp/update_tools.log
hg update >> /tmp/update_tools.log
E o crontab para o usuário rob é:
0 * * * * /home/rob/bin/update_tools.sh
Tudo muito simples. No entanto, quando o trabalho é executado, vemos que a chamada para hg pull
falha com a saída
remote: Permission denied (publickey).
Alguém tem uma idéia do porquê isso pode estar acontecendo - existe algum outro passo que eu preciso dar para que, quando o cron rodar, ele tenha acesso à chave pública relevante? O script update_tools.sh
é executado corretamente em um shell.