Problema
Eu estou trabalhando em um dispositivo embutido, enquanto desenvolvo código é realmente legal ter uma conexão ssh. O dispositivo é portátil e às vezes completamente desconectado da bateria, portanto, para manter a hora atual na placa, na inicialização eu atualizo a data e a hora do meu servidor remoto. O problema é que o servidor sshd no dispositivo, após executar o comando date
, não aceita a forma de conexão, respondendo com a mensagem Permission denied, please try again.
.
O que está acontecendo
O que eu encontrei
Depois de pesquisar por um tempo, descobri que sshd
server registra isso:
debug1: userauth-request for user root service ssh-connection method none
debug1: attempt 0 failures 0
Account root has expired
input_userauth_request: invalid user root
antes mesmo de eu pedir uma senha. Não está lá se o tempo não foi atualizado. O problema parece ser que após a hora do sistema ser alterada, o arquivo /etc/shadow
irá de alguma forma bloquear o usuário root.
O que eu tentei
Eu tentei executar o ssh
no modo de depuração no meu pc (do qual estou tentando conectar ao dispositivo incorporado), executei sshd
no modo de depuração e tentei atualizar o tempo com o comando rdate
e tantas vezes que eu digitando senha errada não é possível (já que não tenho problemas de conexão quando não faço nada sobre o tempo), eu também tentei conectar com chaves ssh ao invés de senha. Tentei executar o comando passwd -u root
, mas isso não alterou nada.
O que estou usando
# busybox
BusyBox v1.18.3 (2016-03-20 23:15:14 CET) multi-call binary.
# /usr/sbin/sshd -v
sshd: illegal option -- v
OpenSSH_5.8p1, OpenSSL 1.0.0d 8 Feb 2011