expect is out of the question because I would like to run it as a cron job,
and since cron jobs don't run under a terminal the combination of expect/ssh
just doesn't work
You can run expect scripts from cron, at least you can with expect libraries like "pexpect" for Python. I just tested this to confirm, running a pexpect scp/ssh script from cron and I was able to successfully scp a file from a Python script running in cron.
COMMAND="scp -oPubKeyAuthentication=no %s %[email protected]%s:%s" % (FILE, USER, HOST, REMOTE_FILE)
child = pexpect.spawn(COMMAND)