Nach OH-Update keine Samba-Freigabe mehr

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von udo1toni »

Die notwendigen vorbereitenden Schritte im openHAB-System:

Code: Alles auswählen

sudo nano /etc/passwd                      # Zeile für den User openhab anpassen, hinten /bin/false durch /bin/bash ersetzen
sudo su - openhab                          # als USer openhab anmelden und ins home-Verzeichnis wechseln
mkdir .ssh                                 # Verzeichnis für ssh anlegen
chmod 700 .ssh                             # Rechte einschränken
chmod 755 ./                               # auch für das home-Verzeichhnis
ssh-keygen                                 # das sollte zwei Dateien id-rsa und id-rsa.pub im Verzeichnis ~/.ssh/ erzeugen.
mv .ssh/id-rsa ...                         # am einfachsten auf einen USB-Stick, oder z.B. mit winscp auf den Reechner kopieren, auf dem vscode läuft 
mv .ssh/id-rsa.pub .ssh/authorized_keys    # alternativ: cat .ssh/id-rsa.pub >> .ssh/authorized_keys
Der Private Key sollte nicht auf dem openHAB-System verbleiben.
Der Public Key wird nicht zwingend als separate Datei benötigt. Du kannst den Inhalt einfach 1:1 in die authorized_keys schreiben. Wenn die Datei vorher nicht existiert, kannst Du also auch einfach die Datei umbenennen :)

In VCCode installierst Du das Plugin Remote Development von Microsoft. Das ist ein Meta-Paket welches vier andere Plugins einrichtet. Anschließend gibt es in der Statuszeile ganz links ganz unten ein Symbol >< (wobei die beiden Pfeile nicht auf gleicher Höhe sitzen). Ein Linksklick öffnet das Menü "Verbindung mit einem Host herstellen..., das wählst Du aus und anschließend den Unterpunkt SSH-Hosts konfigurieren...
Es gibt verschiedene Möglichkeiten, wo Du die Konfiguration ablegst, typisch wäre ein Verzeichnis .ssh im home-Verzeichnis des aktuellen Users (also bei Windows ab V7? das Verzeichnis C:\Users\<username>\.ssh\, notfalls legst Du das Verzeichnis an.

In die Datei speicherst Du die folgenden Zeilen:

Code: Alles auswählen

Host openhabian
  HostName 192.168.178.55
  User openhab
  IdentityFile C:\Users\<username>\.ssh\id_rsa
Host ist der Name des Eintrags im Menü zum Verbindewn mit dem Remote System,
HostName ist die IP des Zielsystems
User ist der Username, der verwendet werden soll
IdentityFile ist der vollständige Pfad zum Private Key
Du speicherst die Datei und rufst erneut das Remote-Menü aus. Nun sollte es einen Eintrag openhabian geben, den Du einfach auswählen kannst.
Faklls der Schlüssel nicht entsperrt wurde, wird VSCode nach dem Passwort für den Schlüssel fragen. Anschließend sollte VSCode ein paar Dateien auf das Remote System kopieren und das Fenster anpassen. Nun kannst Du Ordner Öffnen oder auch einen Arbeitsbereich festlegen, aber Obacht, Du befindest Dich nun auf dem Raspberry, d.h. das zu öffnende Verzeichnis heißt /etc/openhab/
Ab diesem Punkt sollte die Oberfläche eigentlich genauso funktionieren wie denn du lokal arbeitest.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von violine21 »

udo1toni hat geschrieben: 3. Jun 2023 01:45

Code: Alles auswählen

chmod 700 .ssh                             # Rechte einschränken
Vielen Dank! Das ist sehr ausführlich.
Bei der o.g. Zeile wird ein Passwort abgefragt. Keines der mir bekannten Passwörter funktioniert hier.
Welche habe ich getestet:
-habopen
-openhabianpi
-Administrator-Passwort vom Einrichten während der Openhab-Installation
Gibt es hier noch ein anderes Passwort?

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

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von udo1toni »

Nein, da wird definitiv kein Passwort abgefragt. (den Kommentar schickst Du hoffentlich nicht mit)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von violine21 »

udo1toni hat geschrieben: 3. Jun 2023 17:02 den Kommentar schickst Du hoffentlich nicht mit
Natürlich nicht :)
Ich bin dann weiter gekommen, indem ich statt

Code: Alles auswählen

sudo su - openhab

Code: Alles auswählen

sudo su
geschrieben habe. Ich kenne mich mit Linux kaum aus und mit den Rechten schon garnicht.
Aber danach ging es nahtlos weiter.
Ich habe jetzt mit VSC einen Zugriff auf die Dateien, so wie zuvor auch -vielen Dank für Deine Hilfe!
Es gibt nur einen kleinen Schönheitsfehler. Alle Rules werden nach dem Öffnen mit folgendem Fehler "bemängelt":

Code: Alles auswählen

The type FhzRules is already defined in fhz.rules.(org.eclipse.xtext.xbase.validation.IssueCodes.duplicate_type)
Das ist nicht gut, dadurch sehe ich nicht, wenn ein Syntaxfehler vorliegt. Der ganze Text ist mit der roten Wellenlinie unterlegt.
Hast Du dafür eine Lösung?

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

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von udo1toni »

Nein, das ist verkehrt, das ist ein komplett anderer Befehl.

Ich erkläre es mal Schritt für Schritt :)

Code: Alles auswählen

sudo nano /etc/passwd
sudo bedeutet: führe den übergebenen Befehl (hier nano) in einem anderen Benutzerkontext als dem aktuellen aus.
Über den Parameter -u kann man angeben, welches Benutzerkontext es denn sein soll. Wird kein Username übergeben, so wird root verwendet.
Also wird nano im Kontext von root ausgeführt, es wird die Datei /etc/passwd geladen (welche nur von root auch geändert werden darf...)

Die benötigte Änderung findet sich am Ende der Zeile, die für den User openhab existiert, hier muss am Ende statt /bin/false die Zeichenfolge /bin/bash stehen. Damit bekommt der User openhab eine Standard shell zugewiesen.

Code: Alles auswählen

sudo su - openhab
sudo kennen wir schon. Jetzt wird der Befehl su ausgeführt. su ist der Befehl, um sich in eine Shell einzuloggen. Als Parameter werden ein - und openhab übergeben. das - bedeutet: wechsele in den Kontext des angegebenen Users. openhab ist der Username. Wenn Du lediglich sudo su schreibst, wird der Kontext nicht gewechselt. Außerdem wird der Login für den User root ausgeführt, wir wollen aber als User openhab angemeldet sein.
Es gibt hier keine Passwortabfrage, denn Du hast ja schon in der Zeile davor für sudo das Passwort des gerade angemeldeten Users eingegeben, im Zweifel wird das der User openhabian sein. sudo merkt sich das Passwort für eine eingestellte Zeit.
Wenn Du den Befehl korrekt ausführst, landest Du in einer Bash shell, das Verzeichnis wechselt nach /var/lib/openhab/ (weil dies das home-Verzeichnis vom User openhab ist) und eventuell ändern sich auch Farben (je nachdem), weil Du Dich jetzt (dauerhaft) im Userkontext des Users openhab befindest.

Code: Alles auswählen

mkdir .ssh
Erzeuge ein Verzeichnis im aktuellen Verzeichnis, der Name lautet .ssh

Code: Alles auswählen

chmod 700 .ssh
Setze die Zugriffsrechte auf 700, für das Element .ssh im aktuellen Verzeichnis. Jede Ziffer steht für eine bestimmte Gruppe, die 7 für den Eigentümer, die erste 0 für die angegebene Gruppe, die zweite 0 für alle anderen. 7 bedeutet volle Rechte, 0 bedeutet keine Rechte. Da der User openhab das Verzeichnis angelegt hat, darf er als einziger in dieses Verzeichnis wechseln, den Inhalt anzeigen oder dort schreiben.

Code: Alles auswählen

chmod 755 ./
Das gleiche in grün, nur diesmal für das aktuelle Verzeichnis selbst. Diesmal darf der Besitzer alles, alle anderen (auch die Gruppenmitglieder) dürfen lediglich lesend auf das Verzeichnis zugreifen.

Code: Alles auswählen

ssh-keygen
erzeuge ein ssh Schlüsselpaar. Als default verhalten wird rsa als Verschlüsselung verwendet, die Schlüsseldateien werden im Verzeichnis .ssh des ausführenden Users abgelegt und die Dateinamen lauten id-rsa und id-rsa.pub

Code: Alles auswählen

mv .ssh/id-rsa ...
bewege die Datei id-rsa (die drei Punkte habe ich eingefügt, um kenntlich zu machen, dass die Datei an einen anderen Ort soll, am besten auf einen USB-Stick. Eine Samba-Freigabe ginge auch, aber die geht ja nicht. Du kannst auch per WinSCP Kontakt zum Rechner aufnehmen und die Datei darüber aus dem System holen, wichtig ist nur, dass Du den privaten Schlüssel auf den Windows PC bringst.

Code: Alles auswählen

mv .ssh/id-rsa.pub .ssh/authorized_keys
Benenne die Datei id-rsa.pub nach authorized_keys um.
In der Datei authorized_keys werden alle öffentlichen Schlüssel der Schlüsselpaare gespeichert, die sich mit dem betreffenden Usernamen anmelden dürfen. Da wir nur einen Schlüssel haben, reicht das Umbenennen.

Danach kannst Du mit exit aus der shell heraus (das ist die Shell, die im Userkontext des Users openhab läuft).

Ich habe das gerade gestern bei mir durchgezogen und mich sehr bewusst an die Anleitung gehalten (einzig mit dem Unterschied, dass ich keinen neuen Schlüssel erzeugt habe, sondern eine bestehende authorized_keys Datei kopiert habe) und es hat auf Anhieb funktioniert.

Falls Du weiterhin Schwierigkeiten hast, können wir gerne einen Termin machen und ich verbinde mich per Teamviewer mit Dir, ist keine große Sache.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von violine21 »

Hallo Udo,
bin erst jetzt dazu gekommen, das so umzusetzen. Funktioniert super!
Habe mir Deine Postings als How-To abgespeichert.
Besten Dank!!!

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

Re: Nach OH-Update keine Samba-Freigabe mehr

Beitrag von udo1toni »

:)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten