Потратил сегодня часа два на проблему, причем беглый поиск выдает, что проблема таки есть, но с решениями как-то не очень. В общем, если нужно запустить ssh-клиента из как-то хитро вызываемого не интерактивного скрипта, то можно столкнуться со следующим поведением: команда завершается успешно, показывает код выхода «0», но при этом не делает ничего полезного. Я столкнулся при написании хитрого User Parameter для Zabbix, но, говорят, в cron та же история. Если посмотреть отладочный вывод ssh, то там будет фигурировать что-то вроде такого:
debug2: channel 0: read<=0 rfd 4 len 0
debug2: channel 0: read failed
Решение на поверхности: если команда не использует входящий поток, перенаправить его из /dev/zero:
ssh <host> "команда" </dev/zero