VSC Remote Development

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

VSC Remote Development

Beitrag von int5749 »

Hallo Udo,
udo1toni hat geschrieben: 9. Jan 2023 14:27 Ich für meine Teil bin von den SMB Freigaben weg, weil mich die Rechteprobleme immer schon genervt haben. Stattdessen nutze ich die Remote Extension in VS Code. Das Ganze läuft so, dass ich VS Code starte und gegebenenfalls den Befehl gebe, dass VS Code sich mit dem Remote System verbindet (die Verbindungsdaten sind in einer Konfigurationsdatei hinterlegt). Anschließend arbeite ich remote auf dem System, im Editor merke ich davon aber nichts.
Das Plugin heißt Remote Development und stammt direkt von Microsoft. Es handelt sich um ein Metapaket, installiert also mehrere andere Plugins (drei Stück). Danach richtet man eine ssh Verbindung ein (Rechtsklick ganz unten ganz links auf das Symbol ><, dann erst mal Konfigurationsdatei öffnen und einen Zugang anlegen, sieht bei mir so aus:

Code: Alles auswählen

Host 192.168.178.55
  HostName openhabian
  User openhab
  IdentityFile C:\Users\udo1toni\.ssh\openhab_rsa
Das IdentityFile ist der Private Key eines Schlüsselpaares, dessen Public Key auf dem openHAB-System im Verzeichnis /usr/shar/openhab/.ssh/ in der Datei authorized_keys gespeichert ist. Da ich beim Erzeugen des Schlüsselpaares kein Passwort für den Private Key angegeben habe, wird die Verbindung Beim Aufruf des Befehls (Verbindung mit Host herstellen...) direkt aufgebaut, ohne weitere Nachfragen.
VS Code installiert auf dem Remote System beim ersten Kontakt ein paar Dateien, damit der Remote Zugriff auch mit VS Code funktioniert. Die gesamte Konfiguration, das openHAB Plugin betreffend, ist ebenfalls auf dem Remote System gespeichert, so dass es gleichgültig ist, ob ich vom Desktop aus oder vom Notebook auf arbeite. Das funktioniert sogar über einen ssh Tunnel von meiner Arbeit aus, weil ich eben keine Samba Freigabe brauche.
nun bin ich neugierig, denn auch mich nervt es wenn ich meinen VSC Rechner mal neu starte und die SMB Verbindung ist nicht da. Nicht schlimm, aber eben unnötige Schritte. Ich habe die Remote Development Erweiterung bereits installiert und stehe kurz vor der Konfiguration.

Bevor ich falsch abbiege, kannst Du evtl. noch kurz erklären, wie ich den privaten Schlüssel erstelle?

Im Anschluß dabb unten links auf "Remotefenster öffnen" und im Menu dann "Verbindung mit Host - Remote SSH", oder?

Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: VSC Remote Development

Beitrag von udo1toni »

Das Schlüsselpaar kannst Du auf unterschiedliche Weise erstellen. Wichtig ist aber, dass es nicht als .ppk Version vorliegt (das wäre die PuTTY native Variante), sondern so, wie ssh sie verwendet.
Ich habe das direkt auf dem System erledigt, auf welchem openHAB läuft.
Zuerst einloggen als User openhab (das macht es später einfacher...)

Code: Alles auswählen

sudo su - -s /bin/bash openhab
Verzeichnis für ssh erstellen. Da wir uns schon im richtigen Ordner befinden, reicht ein

Code: Alles auswählen

mkdir .ssh
Nun erstellen wir das Schlüsselpaar:

Code: Alles auswählen

ssh-keygen -f .ssh/openhab_rsa
Und gleich noch den public key in die authorized_keys kopieren:

Code: Alles auswählen

 cat .ssh/openhab_rsa.pub >> .ssh/authorized_keys
Die Dateien sollten am besten nur von openhab (also dem User) genutzt werden dürfen:

Code: Alles auswählen

chmod 700 -R .ssh
Wenn Du es ganz ordentlich machen willst, kannst Du auch openhab_rsa.pub und authorized_keys als Permission 644 geben, sowie dem openhab_rsa 600, aber das spielt eigentlich keine echte Rolle.

Sidekick: Wenn man außerdem noch den Komfort haben möchte, eine echte remote karaf Konsole nutzen zu können, kann man den public Key noch in $OPENHAB_USERDATA/etc/keys.properties eintragen (mit einem beliebigen Usernamen und vollen Rechten), dann sollte man allerdings ein absurd komplexes Passwort für den Karaf User openhab setzen (in users.properties im gleichen Verzeichnis) oder den User am besten gleich komplett löschen, so dass nun nur noch das Login mit dem Schlüssel möglich ist. Damit das auch von außen geht, muss noch dafür sorgen, dass Karaf auch auf der IP des Rechners zuhört, also noch in org.apache.karaf.shell.cfg (ebenfalls $OPENHAB_USERDATA/etc/) den Parameter sshHost auf 0.0.0.0 ändern. Danach muss openHAB neu gestartet werden, damit Karaf die Konfiguration neu einliest.

So oder so muss der private key noch auf den lokalen Rechner, notfalls über die samba-Freigabe, indem Du .ssh/openhab_rsa in das passende Verzeichnis kopierst, auf dem Zielrechner rauskopierst und anschließend unbedingt auch wieder aus der Samba-Freigabe löschst. Ach ja, weil wir die Zugriffsrechte schon eingeschränkt haben, musst Du die noch mal umschreiben ;)

Wo ich mir nicht sicher bin: ich habe dem User openhab die Konsole /bin/bash zugeordnet (das geht in der Datei /etc/passwd), kann sein, dass das unbedingt gebraucht wird, kann aber sein, dass es auch ohne geht...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: VSC Remote Development

Beitrag von int5749 »

Hmmm, will bei mir gerade noch nicht, scheitere schon direkt am Anfang :?

Die Session habe ich ja gestartet mit C:\Windows\System32\OpenSSH\ssh.exe openhab@192.168.1.205 -p 8101 und kann mich auch mit den default passwort anmelden. Dennoch bekomme ich folgende Fehlermeldung:
openhab> sudo su - -s /bin/bash openhab
Password: *******
Error executing command: login failed
openhab> sudo su -s /bin/bash openhab
Password: *******
Error executing command: login failed
openhab>
udo1toni hat geschrieben: 9. Jan 2023 18:07 Wo ich mir nicht sicher bin: ich habe dem User openhab die Konsole /bin/bashg zugeordnet (das geht in der Datei /etc/passwd), kann sein, dass das unbedingt gebraucht wird, kann aber sein, dass es auch ohne geht...
Auch dies habe ich gemacht und dem User zusätzlich /bin/bash zugeordnet (ohne g), jedoch auch ohne Erfolg :-/

Ich fürchte ich brauche noch einen Schubs :roll:

Update: Nachdem ich mich als root angemeldet hatte, funktionierten auch die Befehle ;-)

Habe nun alles Befehle ohne Fehler ausführen können, jetzt versuche ich noch die Dateien zu "kopieren" finde die derzeit aber noch nicht :lol:
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: VSC Remote Development

Beitrag von int5749 »

Update 2:

Ich habe nun die Datei gefunden, ins Samba kopiert, auf meinen Rechner kopiert und auf Samba wieder gelöscht.
Anschließend eine Konfigurationsdatei erstellt, diese liegt im c:\users\username\.ssh Verzeichnis.

So weit dachte ich, so gut, aber ...

Code: Alles auswählen

openhab@skynet's password:
Permission denied, please try again.
openhab@skynet's password: 
Beim verbinden fragt VSC erst nach dem Remote OS und wenn ich Linux auswähle, nach dem Passwort für openhab.
Aber dieses sollte doch gar nicht notwendig sein :-/
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

BOP
Beiträge: 197
Registriert: 23. Sep 2018 19:43
Answers: 1

Re: VSC Remote Development

Beitrag von BOP »

Oh, das kannte ich auch noch nicht. Danke fürs drauf Aufmerksam machen! :D
Da ich sowieso SSH-Keys verwende, konnte ich mich sehr schnell verbinden. Aber, ich habe ein Problem. Ich betreibe openHAB unter Ubuntu-Server. Der Benutzer, mit dem ich mich dort anmelde, ist nicht openhab, sondern ein anderer. Dementsprechend fehlen mir jetzt die Schreibrechte in /etc/openhab.

Mir fehlt gerade eine Idee, was ich jetzt machen soll. Bisher, bei der Verbindung per Samba, verbinde ich mich mit dem user openhab. Soll ich mich jetzt auch über SSH mit diesem User anmelden? Oder bekomme ich es irgendwie hin, die Zugriffsrechte so zu setzen, dass ich mit dem normalen User Schreibrechte habe, aber beim Anlegen neuer Dateien dann auch der User openhab noch Zugriff hat?

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: VSC Remote Development

Beitrag von udo1toni »

int5749 hat geschrieben: 9. Jan 2023 19:37 Die Session habe ich ja gestartet mit C:\Windows\System32\OpenSSH\ssh.exe openhab@192.168.1.205 -p 8101 und kann mich auch mit den default passwort anmelden.
Damit verbindest Du Dich direkt mit der Karaf Konsole, nicht mit der GNU/Linux Konsole.
Wenn Du Dich von Windows aus mit dem openHAB System auf Basis von GNU/Linux verbinden willst, machst Du das entweder mit PuTTY, oder aus der Windows Eingabeaufforderung heraus so:

Code: Alles auswählen

ssh.exe openhabian@192.168.1.205
Damit landest Du als User openhabian in der GNU/Linux Shell.
Danach kannst Du die Befehle absetzen.
int5749 hat geschrieben: 9. Jan 2023 19:37 Auch dies habe ich gemacht und dem User zusätzlich /bin/bash zugeordnet (ohne g), jedoch auch ohne Erfolg :-/
Kein Posting ohne elementaren Tippfehler... Ich korrigiere es gleich...
Es ist wirklich wichtig, die Befehle als User openhab auszuführen, nicht als root. Es ist elementar, dass die Zuordnung der Dateien und die verwendeten Namen korrekt passen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten