Kein Login mehr möglich nach crash

Rund um die Software von Revolution Pi
martin_tbg
Posts: 3
Joined: 27 Jan 2024, 16:29

Kein Login mehr möglich nach crash

Post by martin_tbg »

Hallo, ich brauche Hilfe bei meinem Revpi Core S 8GB.

Ich war dabei ein paar Probleme bei der Authentifizierung von Node-RED auf bitbucket zu troubleshooten.
Dabei habe ich sudo grep -rnw '/' -e 'pos-revpi' im Terminal im Cockpit ausgeführt, da ich die configdatei finden wollte, die diesen string enthält. Nicht bedacht habe ich dass es eine dumme Idee ist, die Suche nicht weiter einzuschränken. Kurz danach ist der RevPi eingefroren und war nicht mehr zu erreichen.
Etwa 1 Stunde später wurde der RevPi gepowercycled (ich bin nicht vor Ort, musste also erst jmd dazu anweisen)

Jetzt das Problem: nach dem Neustart ist Node-RED nicht gestartet.
die RevPi Cockpit UI auf Port 41443 ist zu erreichen, aber ich kann mich nicht mehr einloggen. auch per SSH verweigert er den Zugriff, sowohl mit dem Passwort, das ich vorher immer verwendet habe, und mit dem factory-passwort welches auf der Seite aufgedruckt ist.


Was kann ich machen / kann ich aus der Ferne überhaupt irgendwas machen?
Kann ich irgendwie feststellen, ob die Daten (node-red flows) beschädigt sind?

Danke schonmal
Martin
tboehler
KUNBUS
Posts: 45
Joined: 02 May 2023, 14:22

Re: Kein Login mehr möglich nach crash

Post by tboehler »

Hi Martin.

Dass das Dateisystem auf dem RevPi durch einen Power Cycle so korrupt ist, dass du dich nicht mehr anmelden kannst ist sehr unwahrscheinlich, gleichzeitig ist es natürlich nicht ganz auszuschließen.

Ich weiß nicht wie die Anmeldung bei dir verlief, beachte jedoch, dass der RevPi für eine Weile keine Anmeldung zulässt wenn ein Passwort mehrmals falsch eingegeben wurde: Nach 3 Versuchen muss 10 Minuten gewartet werden bevor eine Anmeldung am Gerät wieder möglich ist.

Wenn die Anmeldung über Cockpit nicht funktioniert kannst du es noch über SSH versuchen: https://revolutionpi.com/en/knowledge/l ... rminal#ssh

Falls eine Anmeldung trotzdem nicht möglich ist muss das Gerät wohl neu geflasht werden.

Viel Glück!
Thomas
martin_tbg
Posts: 3
Joined: 27 Jan 2024, 16:29

Re: Kein Login mehr möglich nach crash

Post by martin_tbg »

Hi,

danke für die Antwort!
Dass nach 3 falschen Versuchen gewartet werden muss, erklärt einiges. Das wird nicht angezeigt, daher habe ich sicher panisch 3 mal falsch eingegeben und danach richtig, und wurde trotzdem nicht reingelassen.
Tatsächlich hat es später einwandfrei geklappt. Außer, dass ich den node-red service manuell starten musste, war auch alles in Ordnung und nichts kaputt gegangen :mrgreen:

Mein ursprüngliches Ziel, meinem Node-RED Project ein remote Git repository auf bitbucket hinzuzufügen, habe ich letzendlich trotzdem nicht hinbekommen. egal ob SSH oder HTTPS, node-red fragt nach passphrase bzw. logindaten und kann sich nicht authentifizieren egal was man eingibt. Ich habe das auf einem anderen, selbst aufgesetzten node-red server problemlos am laufen, aber auf dem RevPi will es irgendwie nicht.
User avatar
mlaki
KUNBUS
Posts: 7
Joined: 09 Nov 2023, 11:23

Re: Kein Login mehr möglich nach crash

Post by mlaki »

Hallo martin_tbg,

ich habe es auf meinem RevPi nachgestellt und konnte ein Node-RED-Projekt erfolgreich mit einem Git-Server synchronisieren (GitLab statt Bitbucket; Node-RED ruft ohnehin nur git auf). Zwei Stolpersteine gab es aber.

Verbindung via SSH

Node-RED läuft hier als System-User nodered in einer systemd-Sandbox mit HOME unter /var/lib/revpi-nodered. Die Verzeichnisse /home und /root sind für den Dienst gesperrt. Ein Key unter /home/pi/.ssh kann also nie funktionieren.

Zwei Dinge müssen stimmen:
  • Das Remote muss deinen Public Key kennen. Erzeuge ihn im Editor (Menü -> Settings -> Git config -> SSH Keys -> add key), dann liegt er automatisch an der für die Sandbox erreichbaren Stelle.
  • Der RevPi muss den Host-Key des Servers kennen. Das passiert sonst interaktiv beim ersten ssh, aber der Dienst hat kein TTY. Node-RED bricht dann mit "Host key verification failed" ab. Die Meldung klingt nach falschen Zugangsdaten, kommt aber von der fehlenden known_hosts-Datei.
Host-Key einmalig registrieren:

Code: Select all

ls /var/lib/revpi-nodered/.node-red/projects/.sshkeys/

sudo -u nodered env HOME=/var/lib/revpi-nodered \
  ssh -i /var/lib/revpi-nodered/.node-red/projects/.sshkeys/<DEIN-KEYFILE> \
  -F /dev/null -T git@bitbucket.org
Mit yes bestätigen. Zwei Details sind wichtig: das env HOME=..., sonst landet die known_hosts in deinem eigenen Home, wo der Dienst nicht hinkommt, und der private Keypfad, also ohne .pub. Der Befehl entspricht dem, was Node-RED intern ausführt, zeigt dir aber die echte Fehlermeldung. Danach lief der Push bei mir sofort.

Verbindung via HTTPS

Bitbucket akzeptiert kein Kontopasswort und auch keine App-Passwörter. Es geht nur noch mit einem API-Token, wobei das Token als Passwort eingegeben wird (Repository read + write Berechtigungen). Das ist serverseitig, betrifft deinen lokalen Server also genauso.

Nutzt du https oder ssh auf deinem selbst aufgesetzten Server?
martin_tbg
Posts: 3
Joined: 27 Jan 2024, 16:29

Re: Kein Login mehr möglich nach crash

Post by martin_tbg »

Danke, dass du es getestet hast und für die Anleitung.

Den Schritt, die known_hosts am richtigen Ort zu haben, war das, was mir bisher gefehlt hat.
Dazu kommt noch, dass in der Node-RED UI unter "add remote" bei URL was von ssh://... steht, man muss das ssh:// aber weglassen.

mit HTTPS und API-token als passwort hatte ich es auch versucht, aber keinen Erfolg. Jetzt läuft es aber per SSH, so wie ich es gewohnt bin. Tausend Dank!
User avatar
mlaki
KUNBUS
Posts: 7
Joined: 09 Nov 2023, 11:23

Re: Kein Login mehr möglich nach crash

Post by mlaki »

Sehr gut, dass es läuft!

Noch zwei technische Anmerkungen zu meinem Post oben, falls auch andere über das Problem stolpern.

1. Der Befehl zum Registrieren des Host-Keys geht kompakter. Das env HOME=... wird nicht benötigt - der Systemuser nodered kennt sein Home, sudo -u nodered setzt es also von selbst:

Code: Select all

ls /var/lib/revpi-nodered/.node-red/projects/.sshkeys/

sudo -u nodered
  ssh -i /var/lib/revpi-nodered/.node-red/projects/.sshkeys/<DEIN-KEYFILE>
  -F /dev/null -T git@bitbucket.org
2. Es geht auch ohne privaten ssh key. Der Befehl ssh-keyscan holt den host key direkt:

Code: Select all

ssh-keyscan bitbucket.org | sudo -u nodered tee -a ~nodered/.ssh/known_hosts
bitbucket.org kann durch andere git hosts ersetzt werden - z.b. github.com oder gitlab.com.
Falls ~nodered/.ssh noch nicht existiert, vorher einmal:

Code: Select all

sudo -u nodered sh -c 'umask 077; mkdir -p ~nodered/.ssh; touch ~nodered/.ssh/known_hosts'