Seu shell de sessão cron não tem conhecimento do agente ssh, então não pode falar com ele.
Quando o agente é iniciado, você pode colocar as informações necessárias para o agente em algum lugar para a sessão cron pegar.
Exemplo:
AGENT="ssh-agent -s"
if [ ! -d $HOME/.ssh/agent ]; then
mkdir -p $HOME/.ssh/agent
fi
#
# Start an agent if there isn't one running already.
#
pid='ps -u$LOGNAME | grep ssh-age | awk '{print $1}''
if [ -z "$pid" ]; then
$AGENT | grep -v echo > $HOME/.ssh/agent/$HOST & pid=$!
sleep 1 # Let it fork and stuff
fi
Em seguida, adicione sua chave ao agente.
ssh-add $HOME/.ssh/id_dsa
Agora, o seu trabalho do cron deve fazer isso antes de tentar usar o ssh:
#
# Get our parent to pick up the required SSH env vars.
#
. $HOME/.ssh/agent/$HOST
... depois disso, a sessão do ssh deve prosseguir normalmente.