sshd 在日期更改后抛出无效密码

sshd 在日期更改后抛出无效密码

问题

我正在开发一款嵌入式设备,在开发代码时,拥有 ssh 连接真的很棒。该设备是便携式的,有时完全与电池断开连接,因此为了保持主板上的当前时间,我在启动时从远程服务器更新日期和时间。问题是,设备上的 sshd 服务器在运行date命令后不接受连接形式,回复Permission denied, please try again.消息。

这是怎么回事

  1. 启动设备,连接网络,启动 sshd 并使用 ssh
  2. 不能启动设备,连接网络,更新时间,启动 sshd 并使用 ssh
  3. 不能启动设备,连接网络,启动 sshd,更新时间并使用 ssh
  4. 启动设备,连接网络,更新时间,重启设备,再次连接网络,启动sshd并使用ssh

我的发现

深入研究一段时间后,我发现sshd服务器记录了以下内容:

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

甚至在我被要求输入密码之前。如果时间没有更新,它就不存在。问题似乎是系统时间更改后,该/etc/shadow文件会以某种方式锁定 root 用户。

我尝试过的方法

我尝试ssh在电脑上以调试模式运行(我正尝试从电脑连接到嵌入式设备),我sshd以调试模式运行,并尝试使用rdate命令更新时间,我这样做了很多次,以至于我不可能输入错误的密码(因为当我对时间不做任何操作时,连接没有问题),我还尝试使用 ssh 密钥而不是密码进行连接。我尝试运行passwd -u root命令,但它没有改变任何东西。

我正在使用

# 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

相关内容