O problema é que você provavelmente está executando ssh-agent
em seu ambiente interativo, mas não no cron e que o nome do arquivo da chave ssh é diferente dos nomes de arquivos padrão.
Para resolver isso, você pode especificar explicitamente a chave ssh na linha de comando do scp, ou seja, scp -i $SSH_KEY_FILENAME
ou especificar uma entrada ~/.ssh/config
apropriada para o seu host, por exemplo:
Host backuphost
IdentityFile SSH_KEY_FILENAME
Para testar seu script, você pode tentar executá-lo via env -i /path/to/your/script
, o que deve redefinir seu ambiente e imitar o ambiente cron.