У меня есть bash script, который делает ssh на удаленном компьютере и выполняет там команду:
ssh -nxv [email protected] echo "hello world"
Когда я выполняю команду из командной строки, она работает нормально, но она не работает, когда выполняется как часть crontab (errorcode = 255 - не удается установить соединение SSH). Подробности:
...
Waiting for server public key.
Received server public key and host key.
Host 'remotehost' is known and matches the XXX host key.
...
Remote: Your host key cannot be verified: unknown or invalid host key.
Server refused our host key.
Trying XXX authentication with key '...'
Server refused our key.
...
При выполнении локально я выступаю в качестве корня, crontab также работает как root. Выполнение 'id' из crontab и командной строки дает точно такой же результат:
$ id
> uid=0(root) gid=0(root) groups=0(root),...
Я делаю ssh с некоторой локальной машины на машину, работающую с комом. У меня есть ssh-ключ и учетные данные для ssh для машины с crond и любой другой машины, к которой подключаются скрипты.
PS. Пожалуйста, не спрашивайте/не комментируйте/не комментируйте, что выполнение чего-либо из-за неправильного/неправильного пользователя root/etc - это не цель этого вопроса.