Määp: ja, aber nein.
Richtig: Du kannst Dich
normalerweise nicht remote in der Karaf Konsole anmelden.
Mit der passenden Konfiguration geht das aber sehr wohl.
Genauso kann man dann auch
passwordless zugreifen, dazu erzeugt man ein Schlüsselpaar und hinterlegt den öffentlichen Schlüssel in der Karaf Konfiguration.
In diesem Zusammenhang sollte man natürlich das Standard Passwort für den User openhab mindestens ändern, oder den User gleich komplett aus der Konfiguration entfernen, denn leider gibt es meines Wissens keine Option, zu verhindern, dass man sich mit Passwort anmeldet, das ist auch der Grund dafür, dass der ssh Zugang für die Karaf Konsole normalerweise nur lokal auf dem Rechner erfolgen kann. Wer auf die Linux Konsole kommt, kann ohnehin beliebig Schaden anrichten...
Die notwendigen Anpassungen nimmt man in drei Dateien in
$OPENHAB_USERDATA/etc/ vor.
1.
org.apache.karaf.shell.cfg. Dort bei
sshHost 0.0.0.0 eintragen (Vorgabe ist
127.0.0.1). Alternativ könnte man auch eine bestimmte IP setzen, die auf einem Interface des Host verfügbar ist. Man könnte so den Zugriff über ein ganz bestimmtes Interface begrenzen.
Ein Neustart der Karaf Konsole (bzw. openHAB) sorgt dafür, dass die Änderungen übernommen werden.
2. In der Datei
users.properties kann man dem User openhab ein neues Passwort vergeben. Das Passwort ist hier gewöhnlich verschlüsselt gespeichert (erkennbar an den Tags {CRYPT}...{CRYPT}). Möchte man ein neues Passwort setzen, so trägt man es einfach ohne die Tags ein (also z.B. so: Vorher:
Code: Alles auswählen
openhab = {CRYPT}E13B570439D6879902E95D389ADE6648FD46E3BF6A652B3E585A01A9B98CA01D{CRYPT},_g_:admingroup
Nachher
Karaf wird beim nächsten Neustart den Klartext durch die gecryptete Version ersetzen.
3. In der Datei
keys.properties hinterlegt man analog zum File
users.properties den public Key, mit dem man sich einloggen will. Dazu muss man allerdings zunächst ein Keyfile generieren.
Wenn man sich ohne Passwort einloggen will, muss man beim darauffolgenden Schritt einfach kein Passwort vergeben.
Es entstehen zwei Dateien,
openhab-rsa und
openhab-rsa.pub. Letztere öffnet man und kopiert den Schlüssel (der Teil nach dem ersten Leerzeichen, der mit AAAA beginnt bis zum letzten Zeichen vor dem nächsten Leerzeichen.) Diesen Public Key kann man nun in die
keys.properties einfügen.
Dabei ist das Format zu beachten, welches genauso funktioniert wie in der
users.properties, also vorne steht
username= direkt vor dem key, hinten stehen die Gruppenzugehörigkeiten. Sieht dann so aus:
Code: Alles auswählen
karaf=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QAAAIEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACBAKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53JjTuyk31drV2qxhIOsLDC9dGCWj47Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles
Wichtig ist dabei, dass hinter dem key noch die Gruppen angegeben werden, also das
,_g_:admingroup nicht vergessen, das ist bei der Länge der Zeile gerne mal "unsichtbar"...
In der letzten Zeile ist die Gruppe definiert, welcher der User karaf hier zugeordnet wird. Dort wird also festgelegt, welche Zugehörigkeit sich aus _g_:admingroup ergibt.
Der Key im Beispiel ist der aus der Datei selbst, den sollte man tunlichst nicht aktivieren

wobei es vermutlich keinen gültigen Private Key dazu gibt...
Sind alle Änderungen vorgenommen, so sollte man sich über das public Key Verfahren über PuTTY an der Karaf Konsole anmelden können. Dazu muss man natürlich noch den private Key auf den Remote Rechner kopieren und dort in das ppk Format wandeln
Alternativ kann man auch direkt
putty-keygen verwenden und den Public Key dort herauskopieren und in der keys.properties eintragen, das läuft auf das gleiche raus...
Ach so... PublicKey funktioniert natürlich auch für die Linux Konsole. Man kann die Keys auch per Passwort sichern und auf dem Remote System Pageant starten, in dem man dann die Keys entsperrt hinterlegt. damit muss man dann das Passwort immer nur einmal eingeben, wenn man Pageant startet und die Keys lädt.