sshd gibt nach Änderung des Datums ein ungültiges Kennwort aus

722
johnatann

Problem

Ich arbeite an einem Embedded-Gerät. Während der Entwicklung von Code ist es wirklich schön, eine SSH-Verbindung zu haben. Das Gerät ist tragbar und manchmal vollständig von der Batterie getrennt, um die aktuelle Uhrzeit auf der Platine zu halten. Beim Start aktualisiere ich Datum und Uhrzeit von meinem Remote-Server. Das Problem ist, dass der sshd-Server auf dem Gerät nach dem Ausführen des dateBefehls keine Verbindungsform annimmt und mit der Permission denied, please try again.Nachricht antwortet .

Was ist los

  1. Ich kann ein Gerät starten, eine Verbindung zum Netzwerk herstellen, sshd starten und ssh verwenden
  2. Ich kann kein Gerät starten, keine Verbindung zum Netzwerk herstellen, die Uhrzeit aktualisieren, sshd starten und ssh verwenden
  3. Ich kann kein Gerät starten, keine Verbindung zum Netzwerk herstellen, sshd starten, Zeit aktualisieren und ssh verwenden
  4. Ich kann das Gerät starten, eine Verbindung zum Netzwerk herstellen, die Uhrzeit aktualisieren, das Gerät neu starten, erneut eine Verbindung zum Netzwerk herstellen, sshd starten und ssh verwenden

Was ich gefunden habe

Nach einer Weile habe ich festgestellt, dass der sshdServer dies protokolliert:

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 

noch bevor ich nach einem Passwort gefragt werde. Es ist nicht da, wenn die Uhrzeit nicht aktualisiert wurde. Das Problem scheint zu sein, dass nach der Änderung der Systemzeit die /etc/shadowDatei root-Benutzer irgendwie sperrt.

Was ich versucht habe

Ich habe versucht, sshim Debug-Modus auf meinem PC zu laufen (von dem ich versuche, mich mit dem eingebetteten Gerät zu verbinden), lief sshdim Debug-Modus und versuchte, die Zeit mit dem rdateBefehl zu aktualisieren, und ich tat es so oft, dass das falsche Passwort nicht eingegeben werden kann (da ich keine verbindungsprobleme habe, wenn ich nichts mit der zeit tue), habe ich auch versucht, die ssh-schlüssel anstelle des kennworts zu verbinden. Ich habe versucht, den passwd -u rootBefehl auszuführen, aber es hat sich nichts geändert.

Was ich benutze

# 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 
2
Die Fehlermeldung "Account root ist abgelaufen" scheint ziemlich klar zu sein. Hat Ihr System "Chage"? Hennes vor 8 Jahren 0
Unglücklicherweise nicht. In diesem Fall sieht die Datei "etc / shadow" vor und nach dem Aktualisieren der Uhrzeit genau gleich aus johnatann vor 8 Jahren 0
Es gibt keinen Grund, warum es sich ändern sollte, wenn Sie die Uhrzeit aktualisieren. Wenn das Konto auf eine bestimmte Zeit abläuft (was Sie mit "chage -l root" überprüfen können) und diese Zeit nach dem heutigen Tag liegt, sollten Sie sich anmelden und arbeiten können. Wenn Sie das Datum korrigieren (in die Zukunft und nach dem Ablaufdatum gehen), wird keine Änderung in / etc / shadow vorgenommen. Der Datenvergleich wird jedoch abgelaufen, da sich die Systemzeit geändert hat. Nicht schatten Hennes vor 8 Jahren 0
Gibt es eine Möglichkeit, es ohne "chage" zu überprüfen? Das Ändern des Passworts mit dem Befehl "passwd" scheint an den dort angegebenen Verfallszeiten für den Benutzer "root" jedoch nichts zu tun. johnatann vor 8 Jahren 0
Eingebettet. Busybox. Arg, Mangel an normalen Befehlen. Möglicherweise haben Sie nur [diese] (https://busybox.net/downloads/BusyBox.html), und keiner dieser Befehle scheint zu helfen. Jede Änderung, die mit "apt-get install chage" getestet werden soll, oder der Paket-Manager (falls vorhanden) wird verwendet. (Meine normale Idee wäre, den Befehl nur zu kompilieren, aber Sie werden wahrscheinlich für die eingebettete Installation kreuzkompiliert und die Dinge werden auf diese Weise viel interessanter. Hennes vor 8 Jahren 0
Zwei weitere Fragen: 1) Haben Sie das Bild, das auf das eingebettete Gerät geblitzt wird? Können Sie seine Dateisysteme mit Loopback von einem anderen Linux-System aus einhängen (eine vollständige Installation, keine minimale Installation mit "busybox")? Von dort aus könnten Sie "chroot" und "chage -l" verwenden. 2) Funktioniert das Anmelden bei anderen Benutzern gut? Sie haben nur root erwähnt, aber ich gehe davon aus, dass Sie das nur für Notfälle verwendet haben und ähnliche Probleme bei anderen Konten oder bei der Verwendung von uid0 auftreten. Hennes vor 8 Jahren 0
Ich wurde gerade über sshd_config informiert? Kannst du das vom eingebetteten Gerät zu deinem Post hinzufügen? Esp. wenn es PAM verwendet. Wenn Sie die Kennwortalterung verwenden und "usePAM no" verwenden, wird Ihr Kennwort anscheinend niemals INAKTIV und die ssh-Schlüssel funktionieren ohne Warnhinweise für den Ablauf des Kennworts. Quelle: http://www.unix.com/linux/256596-linux-password-aging-ssh-keys.html (danke Dave, dass Sie mich darauf hingewiesen haben). Hennes vor 8 Jahren 1
Teamarbeit, das machen wir hier. NotAdmin Dave vor 8 Jahren 0
Danke für all die Hilfe! 1) Zuerst habe ich eine serielle Schnittstelle, über die ich Zugriff auf die Root-Konsole erhält. 2) Ich verwende keinen Paketmanager, alles wird kreuzkompiliert. 3) "UsePAM no" ist voreingestellt und auf "yes" gesetzt `Nicht unterstützte Option UsePAM`-Fehler 4) Die einzige Lösung, die ich bisher gefunden habe, ist das Bearbeiten der Datei / etc / shadow / (obwohl ich weiß, dass ich es nicht tun sollte) und sie von` root: $ 1 (geheim ): 17049: 5: 99999: 7: 5: 2000: `root: $ 1 $ (geheim): 17049: 0 :::::` 5) Ich bin auch an den Kern eines Problems gelangt - das Root-Konto ist also abgelaufen Die meisten meiner ersten Fragen sind veraltet - sollte ich sie umschreiben? johnatann vor 8 Jahren 0
Große Umschreibungen nach den Antworten sind etwas verpönt, aber diese Frage hat noch keine Antworten. Mach weiter. Hennes vor 8 Jahren 0

0 Antworten auf die Frage