Eu tive esse problema em um droplet Debian 8 DigitalOcean criado usando a opção 'user data' (script de instalação publicado pela web (bash ou cloud-init)).
verifique o diário do sistema em busca de mensagens de erro relevantes:
journalctl | grep -B 1 -i "cron.*authentication token" | tail -n 3
May 19 13:17:01 debian-512mb-fra1-01 CRON[16714]: pam_unix(cron:account): expired password for user root (root enforced)
May 19 13:17:01 debian-512mb-fra1-01 CRON[16714]: Authentication token is no longer valid; new one required
May 19 13:17:01 debian-512mb-fra1-01 cron[470]: Authentication token is no longer valid; new one required
veja qual conta (s) expirou status
cut -d: -f 1 /etc/passwd | while read U ; do chage -l $U | sed
"s|^|$U:|"; done | grep "must be"
root:Last password change : password must be changed
root:Password expires : password must be changed
root:Password inactive : password must be changed
use a ferramenta 'chage' para atualizar os campos de expiração, primeiro tente
chage -I -1 -m 0 -M 999999 -W 31 root
Nota: não tive o efeito desejado até que eu também adicionei a opção 'last-changed' (-d)
use a ferramenta 'chage' para atualizar os campos de expiração, segunda tentativa
chage -d 'date "+%F"' -E 2999-01-01 -I -1 -m 0 -M 999999 -W 31
root
verificar o vencimento do campo
chage -l root
Last password change : May 19, 2017
Password expires : never
Password inactive : never
Account expires : Jan 01, 2999
Minimum number of days between password change : 0
Maximum number of days between password change : 999999
Number of days of warning before password expires : 31