Nur zur Klarstellung, was wie wo...
Ausgehend von der Standard Plattform Raspberry Pi mit openHABian Image:
Es gibt das Host System - das ist der Raspberry Pi als Hardware und das OS Raspberry Pi OS lite (ein debian Derivat).
Damit man das System headless betreiben kann (ohne Monitor und Tastatur), ist bereits ein ssh Zugang eingerichtet. sshd ist der entsprechende Dienst, der auf Port 22 läuft (das ist der Standard Port für ssh)
Innerhalb des OS ist Java installiert. openHAB verwendet Java als Laufzeitumgebung. Dabei werden diverse Hilfmittel verwendet, unter anderem gibt es OSGI, das ist quasi die Plattform, welche in Java ausgeführt wird und alle openHAB-Teilprogramme ausführt. Es gibt für OSGI einen Konsolenzugang, dieser erfolgt ebenfalls über ssh, aber auf Port 8101 (default).
Es gibt also zwei unterschiedliche ssh Zugänge, den zum Hostsystem und den zur openHAB-Umgebung
Der Befehl
verbindet das Terminal per ssh Protokoll mit Port 22 der IP 192.168.178.150, und zwar mit dem User openhabian.
sshd fragt dann nach dem Passwort, welches für den User openhabian (default)
openhabian lautet.
Der Befehl
verbindet das Terminal per ssh Protokoll mit Port 8101 der IP 192.168.178.150. Sofern auf dem betreffenden Rechner gerade openHAB ausgeführt wird, meldet sich dann die
Karaf Konsole und fragt nach dem Passwort, für den User openhab. Dies ist ein als Default angelegter User für die Karaf Konsole, das Passwort lautet in diesem Fall
habopen.
Die Karaf Konsole ist etwas völlig anderes als die GNU/Linux Shell!
openhabian-config steht ausschließlich in der GNU/Linux Shell zur Verfügung.
Die Karaf Konsole ist
eigentlich nur von localhost aus erreichbar, openhabian-config ändert den Zugriff aber dahingehend, dass man sich von jedem Rechner aus anmelden kann. Leider wird das nirgendwo explizit erwähnt - vor allem die Implikationen, die sich daraus ergeben. Man tut nämlich gut daran, den Default User openhab aus der Liste der Karaf Konsolen User zu entfernen, oder zumindest das Passwort zu ändern.
Das Passwort ist übrigens in der Datei
$OPENHAB_USERDATA/etc/users.properties hinterlegt, und zwar verschlüsselt. Will man ein neues Passwort setzen, so beendet man openHAB (und damit OSGI), entfernt alles von bis einschließlich "{CRYPT}" und schreibt stattdessen das neue Passwort im Klartext hin also von so:
Code: Alles auswählen
openhab = {CRYPT}4F61A0FD056BC0FD8231899EC4D9F9CA06AF0DEC895B2A3B0773F6FBC1C99776{CRYPT},_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles
nach so:
Code: Alles auswählen
openhab = meinTotalGeheimesPasswort,_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles
Nun startet man openHAB wieder. OSGI liest die Datei ein, stellt fest, dass hier ein Klartextpasswort notiert ist und verschlüsselt es umgehend. Nach dem Start kann man also die Datei öffnen und findet wieder einen mit {CRYPT} markierten Teilstring vor, der nicht mehr erkennen lässt, dass das Passwort nun meinTotalGeheimesPasswort ist.
Eine interessante Alternative besteht darin, ein RSA Schlüsselpaar zu generieren und den Public Key in der Datei
$OPENHAB_USERDATA/etc/keys.properties einzutragen. Die Notation ist dabei identisch mit der users.properties, nur dass der Public Key nicht cryptografisch gesichert wird - das ist ja auch unnötig, er ist schließlich öffentlich.
Vom Remote System aus kann man sich nun mit dem Private Key authentisieren. Entweder, man erzeugt den Key ohne Passphrase, oder man nutzt einen Key Agent (z.B. den bei PuTTY mitgelieferten pageant) und spart sich so die Eingabe eines Passworts. Wenn der Zugang mittels Public Key funktioniert, kann man anschließend den Eintrag in der
users.properties auskommentieren. Nachteilig daran ist nur, dass der Zugriff über den Befehl
openhab-cli console dann nicht mehr funktioniert, da man hier
immer als User openhab mit Passwort Anmeldung arbeitet.
Der Username ist nicht auf openhab festgelegt,