Seite 1 von 3

Visual Studio Code

Verfasst: 15. Feb 2020 21:23
von OliverCJ
Guten Abend zusammen,

ich habe mich die letzten Tage etwas intensiver mit Visual Studio Code beschäftigt und dabei auch das Logging mal direkt im Terminal Fenster ausprobiert (bisher immer über Putty).

Aber zwei Fragen habe ich dann doch und hoffe mir kann hier jemand helfen. Leider gibt es zu dem Thema kein Unterforum (vielleicht mal ne Idee?)

1. Das Logging läuft immer nur 5 min, dann muss ich es neu aufrufen. In Putty läuft es quasi endlos. Gibt es eine Möglichkeit das einzustellen?

2. Kann man das so konfigurieren, dass man über einen Aufruf direkt im Logging landet, ohne die ganze Anmeldeprozedur?

Danke!
Oliver

Gesendet von meinem SM-N975F mit Tapatalk


Re: Visual Studio Code

Verfasst: 16. Feb 2020 00:39
von udo1toni
Ich vermute mal, Du meinst den direkten Zugriff auf die Karaf Konsole?

Wie greifst Du auf das Log zu, wenn Du über PuTTY zugreifst?
Zu 1.: Ich wüsste nicht, dass man das verhindern kann, das ist der Timeout vom Login. Man müsste regelmäßig einen Tastendruck ans Terminal senden.
Zu 2.: Der Standardbefehl führt in die Karaf Konsole, damit man dort beliebige Befehle absetzen kann. Du könntest noch einen Parameter hinzufügen, damit direkt das log gestartet wird, zum Preis, dass Du nicht mehr in die Konsole kommst.
Das Log steht doch bequem über frontail zur Verfügung.

Re: Visual Studio Code

Verfasst: 17. Feb 2020 09:41
von OliverCJ
Hallo Udo,

ja genau! Da habe ich mich etwas ungenau ausgedrückt.
Ich rufe den Terminal-Reiter in Vis auf und dann mit

Code: Alles auswählen

ssh -p 8101 openhab@192.168.###.##
Dann noch schnell das PW eingeben und

Code: Alles auswählen

log:tail
Über Putty quasi genauso...

Ich kam auch nur drauf, weil ich meine mich erinnern zu können, dass ich irgendwo mal einen Screenshot gesehen habe, bei dem in dem Dropdown rechts "Karaf Konsole" drinstand (siehe Terminal.png).
Terminal.PNG
Meine laienhafte Vorstellung: Ich kann mir da beliebige Batches anlegen, die ich einfach nur auswähle und dann startet quasi der Aufruf inkl. PW und "log:tail" automatisch...

Aber na gut, dann lege ich mir einfach txt-Datei im Ordner "Services" an und in die schreibe ich alle Befehle die ich benötige. Dann kann ich von da mit C&P arbeiten...

Oliver

Re: Visual Studio Code

Verfasst: 17. Feb 2020 15:11
von udo1toni
Richtig, das ist der normale Weg. Du konfigurierst den passenden Befehl in den Einstellungen des openHAB-Plugins. Die Einstellungen im Bearbeitungsmodus sehen so aus:

Code: Alles auswählen

{
    "openhab.itemCasing": "camel",
    "openhab.host": "ip.zum.openhab.server",
    "openhab.port": 8080,
    "openhab.remoteLspEnabled": true,
    "openhab.remoteLspPort": 5007,
    "openhab.useRestApi": true,
    "openhab.karafCommand": "ssh openhab@%openhabhost% -p 8101",
    "openhab.paperPath": "paperui",
    "openhab.username": "",
    "openhab.password": "",
    "openhab.sitemapPreviewUI": "basicui"
}
Es reicht normalerweise, den host einzutragen.
Das Karaf-Command bekommst Du dann mit <Strg>+<Umschalt>+P -> openHAB: Open openHAB Console. Du landest damit direkt in der Karaf Konsole, nicht in der GNU/Linux Bash!

Nun kommt ein großes ABER:
  1. Default lauscht die Karaf Konsole ausschließlich auf der ip-Adresse 127.0.0.1, das ist das Netzwerk Loop-Device (bzw. localhost). Die Anfrage kommt also gar nicht in Karaf an.
  2. Da normalerweise das default Passwort gesetzt ist, besteht bei Freigabe im Netzwerk eine erhöhte Gefahr, dass jemand unberechtigt eindringt.
Zu
  1. Öffne die Datei $OPENHAB_USERDATA/etc/org.apache.karaf.shell.cfg und ändere den Eintrag sshHost auf 0.0.0.0
  2. Da kommt es ein bisschen drauf an, wie komfortabel Du es haben willst.
    1. Das Passwort lässt sich über $OPENHAB_USERDATA/etc/users.properties ändern, indem man am Ende der Datei den Eintrag zum user openhab findet und dort exakt den Teilstring {CRYPT}<irgendwelche Zeichen>{CRYPT} durch das gewünschte Passwort ersetzt.
      Beides sollte bei gestopptem openHAB2 passieren.
      Nach dem Start von openHAB2 ersetzt openHAB2 das Klartext Passwort durch den passenden CRYPT-String.
      Ab sofort sollte das neue Passwort aktiv sein.
      Speziell bei der users.properties ist es sinnvoll, vorher eine Sicherheitskopie zu erstellen ;) denn es passiert schnell, dass die Änderung nicht exakt so ausgeführt wird, wie vorgesehen.
    2. Richtig komfortabel wird es, wenn man schlüsselbasierte Autentifizierung nutzt. Man erstellt per ssh-keygen ein Schlüsselpaar (kein Passwort setzen!) und trägt den öffentlichen Schlüssel in $OPENHAB_USERDATA/etc/keys.properties ein, analog zum vorhandenen Eintrag. Der vorhandene Schlüssel ist aber auskommentiert, also keine Raute vor den Usernamen (openhab=, nicht karaf= ;) ) schreiben.
      Außerdem muss man darauf achten, am Ende den Teilstring ,_g_:admingroup anzuhängen, eben wie beim Beispieleintrag für den User karaf.
      Die letzte Zeile darf nicht angetastet werden (das ist die gleiche Zeile wie in der users.properties).
      Den privaten Schlüssel kopierst Du auf das System, welches Zugriff per ssh erhalten soll. Dann muss man den ssh Aufruf etwas anpassen:

      Code: Alles auswählen

      "openhab.karafCommand": "ssh -p8101 -i openhab.id_rsa openhab@%openhabhost%",
      wobei openhab.id_rsa der Dateiname des private key (mitsamt Pfad) ist.
Wenn man das so einrichtet, landet man bei Aufruf der karaf Konsole unmittelbar am karaf-Prompt, ohne Passworteingabe, ohne den ganzen Ballast eben. In der Konsole reicht dann log:display, um die Log-Anzeige zu starten (aber wie erwähnt nur 5 Minuten ma Stück)

Re: Visual Studio Code

Verfasst: 18. Feb 2020 15:20
von OliverCJ
Puuh... Vielen Dank!
Mal sehen, ob Du mich da nicht abgehangen hast.
Wird mir das die Tage mal zu Gemüte führen, bin eh gerade krank geschrieben...

Re: Visual Studio Code

Verfasst: 18. Feb 2020 15:45
von udo1toni
Das hört sich schlimmer an, als es ist. Letztlich sind es zwei Dateien (bzw. drei, wenn Du ein Schlüsselpaar erzeugst) die Du anfassen musst, was aber mit geringem Aufwand verbunden ist.
das default Passwort zu ändern, ist ohnehin eine gute Idee ;)

Re: Visual Studio Code

Verfasst: 19. Feb 2020 15:37
von OliverCJ
Hmm, jetzt habe ich gerade mal mit schwerem Kopf geschaut...

Ich suche mit die openHAB Extension und gehe dort dann auch Extension Setting. Dort könnte ich dann eine "Settings.json" bearbeiten. Die erinnert ein ganz klein wenig an den Code den Du gepostet hast, aber wirklich nur ganz entfernt:

Code: Alles auswählen

{
    "window.zoomLevel": 1
}
zu 1. Das mit dem localhost habe ich schon ausgeschaltet.
zu 2. das DefaultPW hatte ich auch schon ganz am Anfang geändert

Also entweder ich begebe mich da mal irgendwann dran, wenn Stirn- und Nebenhöhlen wieder frei sind und ich klar denken kann oder ich habe halt ein wenig Tipparbeit wenn ich auf die Konsole möchte. Ist ja jetzt auch nicht dauernd der Fall...

Re: Visual Studio Code

Verfasst: 19. Feb 2020 23:18
von udo1toni
Du bist auf dem richtigen Weg. :) Aber Achtung! es gibt in VSCode drei verschiedene Settings-Möglichkeiten:

1. Die Grundeinstellungen. Das sind die Vorgaben, welche man nicht so ohne weiteres ändern kann (also an dieser Stelle)
2. Die Arbeitsbereichseinstellungen. Diese Einstellungen werden im Arbeitsbereich gespeichert
3. Die Usereinstellungen. Diese sind, wie der Name schon vermuten lässt, benutzerbezogen.

Wenn Du Einstellungen vornimmst, musst Du Dir überlegen, was Du wo einstellen willst. Den Arbeitsbereich könnte man z.B. vom Ziel abhängig machen, also wenn man mehrere openHAB Systeme laufen hat (z.B. eines zum Testen, vielleicht gar in einer VM auf dem Desktop). Man lädt den Arbeitsbereich und hat automatisch die Einstellungen für dieses System, Host, User, Passwort...
Eine andere Einstellung ist vielleicht userbezogen, wie die Fenster aufgeteilt sein sollen, die Farbgebung... Man muss also aufpassen, in welcher der beiden Dateien man die Einstellungen hinterlegt.

Solange noch keine Einstellungen vorgenommen wurden, ist die entsprechende Datei leer. Offensichtlich hast Du mal den Zoomlevel geändert und VSCode hat das gespeichert.
Wenn Du eine Einstellung ändern (und speichern) möchtest, wählst Du also die Zieldatei aus und schreibst dann den Anfang des Parameternamens (z.B. openh.
VSCode bietet Dir automatisch alle möglichen Ergänzungen an. Es zeigt auch den jeweiligen Default Wert an. Wenn Du einen Parameter benutzt hast, wird er automatisch aus der Liste entfernt, so dass Du nicht aus Versehen zweimal den selben Parameter verwendest. Wichtig: Am Ende jeder Zeile muss ein Komma stehen, falls noch ein weiterer Parameter folgen soll.

Der Default Wert für den Parameter openhab.host ist "openhabianpi". Wenn Du openHABian verwendest, ist das der Name des Systems, so dass eigentlich gar keine Einstellungen nötig sein sollten. Wenn der ssh Zugriff offen ist, sollte daher der Login direkt funktionieren (wenn auch nicht passwortlos).

Die Sache mit dem passwortlosen Login ist eine sehr feine Sache, ich mache das "schon immer" so, das heißt, ich habe ein Schlüsselpaar, dessen öffentlichen Teil ich auf jedem System hinterlasse, in das ich mich remote anmelden will. Da ich diverse VMs betreibe, ist die Liste der Systeme... stattlich. In meinem Fall ist der private Key aber passwortgeschützt, weil PuTTY einen netten Dienst mitbringt (pageant), der diese Keys verwaltet. Man lädt die Keys und gibt einmalig das Passwort ein, danach kann man die Verbindungen zu den Remote Maschinene beliebig oft herstellen und trennen, keine Passwortabfrage mehr (aber hohe Sicherheit vor Hackerangriffen, da man zwingend den Private Key besitzen muss).

Von unterwegs logge ich mich ebenfalls über ssh in mein Netz ein. Ich sehe immer mal wieder Portscans und Angriffsversuche, aber da die Authentifizierung mittels Passwort abgeschaltet ist, können die lang probieren :) - natürlich muss man darauf achten, die ssh-Version aktuell zu halten, aber das ist eh selbstverständlich.
Für openHAB war es für mich also nur logisch, das auch so umzusetzen, sobald die Entwickler das implementiert hatten (das kam mit der Umstellung auf karaf als OSGI-Schicht)

Re: Visual Studio Code

Verfasst: 18. Sep 2020 08:53
von OliverCJ
Guten Morgen zusammen,

ich würde diesen älteren Thread gerne noch mal beleben.. Mittlerweile komme ich mit VSCode richtig gut zurecht, aber auf eine Frage habe ich noch keine rechte Antwort gefunden (google und div. Videos auf yt schon bemüht).
Ich kann in den Settings ja auch den Aufrufbefehl für die Karaf-Konsole hinterlegen:

Code: Alles auswählen

"openhab.karafCommand": "ssh openhab@192.168.178.12 -p 8101 -t 'log:tail'",
Aber was nützt mir das? wie bekomme ich die Karaf jetzt aufgerufen, ohne den ganzen Sammon noch mal einzutippen (denn ich denke, dafür ist das ja gedacht.... das beschreibt tatsächlcih keiner auf seiner seite oder in seinem Video...

Danke!

Re: Visual Studio Code

Verfasst: 18. Sep 2020 10:51
von udo1toni
Du machst im Editorbereich einen Rechtsklick und wählst aus dem Kontextmenü Befehlspalette (alternativ <strg>+<shift>+P) und gibst dann ope ein. Aus der Liste der Befehle suchst Du dann openHAB: Open openHAB console aus. Die Befehlspalette listet default immer die zuletzt eingegebenen Befehle zuerst, geht also beim 2. Mal noch schneller :)

Allerdings musst Du, damit der Zugriff überhaupt funktioniert, auch in openHAB etwas tun, denn das default Verhalten ist, dass die Karaf Konsole nur auf localhost lauscht, nicht aber auf der normalen IP (das ist die gleiche wie vom openHAB System).
Wenn Du openHABian nutzt, dann gibt es dafür einen eigenen Menüpunkt (42 Bind the openHAB SSH console to all external interfaces). openHAB muss zum Umschalten neu gestartet werden (ich gehe mal davon aus, dass openhabian-config das automatisch erledigt).
wenn Du kein openHABian nutzt, musst Du den Wert selbst setzen, das geht in $OPENHAB_USERDATA/etc/grep org.apache.karaf.shell.cfg
Allerdings solltest Du dann auch gleich noch ein sicheres Passwort setzen oder gleich auf public key Verfahren umstellen.