Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Netzwerke>ssh-Zugang zu NAS nur per root?

ssh-Zugang zu NAS nur per root?

marm22.08.2320:48
Ich habe mir einen passwortlosen ssh-Zugang zur Synology eingerichtet.
Den öffentlichen Schlüssel, den ich per "ssh-keygen -t -rsa" erstellt habe, habe ich im Verzeichnis ~/.ssh in die Datei authorized_keys geschrieben. Der Zugang im Terminal per ssh root@ip funktioniert (per Mac und iPad). So weit so gut.

Dazu zwei Fragen:
  • Warum funktioniert das nicht mit einem anderen Benutzer, zum Beispiel admin? Hier muss ich grundsätzlich das Passwort eingeben. Ich nehme an, für den admin müsste das Verzeichnis ~/.ssh dem Verzeichnis /volume1/homes/admin/.ssh entsprechen und dort die gleiche Datei authorized_keys erstellt werden.
  • Kann ich den Zugriff eines Nutzers, der per ssh zugreift, auf ein Verzeichnis beschränken und dennoch alle Kommandos nutzen? Wie gehe ich da vor?
0

Kommentare

marm22.08.2322:40
Es soll wohl nicht sein ... Ohne Home-Verzeichnis weiß ich nicht wohin mit dem Schlüssel.

$ echo $HOME
/var/services/homes/admin
$ cd /var/services/homes/admin
sh: cd: /var/services/homes/admin: No such file or directory

$ cd ~
sh: cd: /var/services/homes/admin: No such file or directory
-3
Weia
Weia23.08.2301:17
marm
Es soll wohl nicht sein ... Ohne Home-Verzeichnis weiß ich nicht wohin mit dem Schlüssel.
Warum legst Du das Home-Verzeichnis für admin denn nicht einfach an?

mkdir /var/services/homes/admin
„🦖The dinosaurs invented Jesus to test our confidence in science“
0
FlyingSloth
FlyingSloth23.08.2301:40
Meinst Du das Homes Verzeichnis auf der Syno oder Homes am Mac?

Hast Du auf der Syno Homes Services aktiviert? Wenn nicht, dann hast Du auch keine Homes Struktur.

marm
Es soll wohl nicht sein ... Ohne Home-Verzeichnis weiß ich nicht wohin mit dem Schlüssel.

$ echo $HOME
/var/services/homes/admin
$ cd /var/services/homes/admin
sh: cd: /var/services/homes/admin: No such file or directory

$ cd ~
sh: cd: /var/services/homes/admin: No such file or directory
„Fly it like you stole it...“
0
marm23.08.2309:04
Variante 1: home services ist deaktiviert (auf der Synology, siehe Bildschirmfoto von FlyingSloth).
Das Home-Verzeichnis (/var/services/homes/admin) lässt sich dann nicht erstellen. Wenn ich den Inhalt vom Verzeichnis /var/services/ anzeigen lasse, ist dort ein Verzeichnis homes, aber ...
sh-4.4$ ls -l /var/services/homes
lrwxrwxrwx 1 root root 24 Aug 21 23:45 /var/services/homes - > /volume1/@fake_home_link
sh-4.4$ ls -l /var/services/homes/admin
ls: cannot access '/var/services/homes/admin': No such file or directory

Variante 2: home services aktiviert
Das Verzeichnis /var/services/homes/admin existiert nun und ich kann dort die Datei authorized_keys im Verzeichnis ~/.ssh erstellen (gleicher privater Schlüssel).
Wenn ich mich anmelde
ssh admin@ip
dann wird dennoch immer nach einem Passwort gefragt 🤷‍♂️

Mit einem Benutzer, der kein Admin ist, funktioniert es ohnehin nicht. Das Ändern von /etc/passwd/ hilft wohl nicht mehr und ssh ist grundsätzlich für einfache Benutzer blockiert.
So, und dann Stelle habe ich mir dann gesagt: "Es soll wohl nicht sein ...". Dann eben per root.
0
FlyingSloth
FlyingSloth23.08.2309:15
Ist aber nicht ganz ohne, sich ständig als Root via SSH einzuloggen.
Was versuchst du denn über SSH zu bewerkstelligen, was sonst nicht geht?
„Fly it like you stole it...“
+1
marm23.08.2309:21
FlyingSloth
Ist aber nicht ganz ohne, sich ständig als Root via SSH einzuloggen.
Was versuchst du denn über SSH zu bewerkstelligen, was sonst nicht geht?
Das denke ich mir auch; Root hat mir für meine Zwecke zu viele Rechte.
Auf dem Mac habe ich mir in letzter Zeit einige Skripte (ruby, bash) erstellt, mit denen ich Texte (.md) bearbeiten, filtern usw. kann. Der Mac ist aber nachts ausgeschaltet. Wenn die Texte auf dem NAS liegen, kann ich die Skripte auch dort anstoßen oder die Texte auf dem iPad bearbeiten. Die Skripte funktionieren mittlerweile alle auf der Synology.
Eine VM kann meine Synology nicht. Die ist eine Nummer zu klein dafür.

Anmerkung: In Variante 2 oben habe ich selbstverständlich den öffentlichen Schlüssel genommen und nicht den privaten.
0
Weia
Weia23.08.2309:41
marm
Variante 2: home services aktiviert
Das Verzeichnis /var/services/homes/admin existiert nun und ich kann dort die Datei authorized_keys im Verzeichnis ~/.ssh erstellen (gleicher privater Schlüssel).
Wenn ich mich anmelde
ssh admin@ip
dann wird dennoch immer nach einem Passwort gefragt 🤷‍♂️
Ist denn der Eintrag in authorized_keys exakt so wie Deine Anmeldung? Wenn Dein NAS z.B. dagobert heißt und Du dich mal mit
ssh admin@1.2.3.4
und mal mit
ssh admin@dagobert
und mal mit
ssh admin@dagobert.local
anmeldest, dann muss für jede dieser Schreibweisen ein entsprechender Eintrag in authorized_keys existieren.

Geht es denn als root?

Schau mal, ob Du in /etc/ssh/ssh_config oder in ~/.ssh/config einen Eintrag zu dem Parameter PubkeyAuthentication findest.
„🦖The dinosaurs invented Jesus to test our confidence in science“
-1
marm23.08.2310:00
Weia
Geht es denn als root?
Ja, funktioniert mit root ohne Passwort. Ich nutze auch die gleiche ip in ssh root@ip.
Schau mal, ob Du in /etc/ssh/ssh_config oder in ~/.ssh/config einen Eintrag zu dem Parameter PubkeyAuthentication findest.
/etc/ssh/ssh_config bzw. ~/.ssh/config bzw. /var/services/homes/admin/.ssh/config existieren alle nicht.
Also weder für root noch für admin.
+1
rmayergfx
rmayergfx23.08.2310:41
marm
... Wenn die Texte auf dem NAS liegen, kann ich die Skripte auch dort anstoßen oder die Texte auf dem iPad bearbeiten. Die Skripte funktionieren mittlerweile alle auf der Synology.

Hi,
du benötigst für die Skripte überhaupt keinen Zugang per SSH oder Root Rechte. Selbst mit DSM6/7 ist es ohne Probleme möglich das in einem Aufgabenplaner zu realisieren:
Aufgabenplaner > Geplante Aufgabe > Benutzerdefiniertes Skript.
Dann alle automatismen abhaken, damit es nur manuell ausgeführt wird. Wichtig ist das hier als Benutzer root ausgewählt wird. In der Aufgabeneinstellung kopierst du dann nur den passenden Befehl, so wie du ihn normalerweise in der SSH Konsole angibst.
Für den ersten Test kannst du dir auch eine Benachrichtigung schicken lassen oder die Protokolle aktivieren um zu sehen ob ein Fehler auftritt.

Vorteil, dieses Skript kannst du wenn es getestet wurde und es so funktioniert wie du dir es vorstellst auch regelmäßig laufen lassen und benötigst den Mac dazu überhaupt nicht mehr.
Eine gute bebilderte Anleitung findet man z.B. hier:

Mit so einem Skript kannst du ohne das die Synology wirklich Stress macht z.b. auch alle 5 oder 10 min ein Batch laufen lassen um Dateien zu konvertieren oder OCR aus einem Ordner voller PDF Dateien zu managen.

PS: Der Zugang per Schlüsseldatei scheint wirklich nur mit dem User root zu gehen, das ist aber anscheinend was spezielles von Synology, habe da auch schon etliche Tage mit verbracht um per WinSCP auf das System zu kommen.
PPS: SSH ist grundsätzlich auf meiner Syno deaktiviert und wird nur manuell bei Bedarf aktiv geschaltet, da es eigenltich keinen Grund gibt auf der Konsole zu arbeiten. Man kann (fast) alles auch per benutzerdefinierter Aufgabe als root erledigen lassen. Die anderen 5% der Aufgaben in der Konsole als root sind eh arbeiten am offenen Herzen und da sollte man genau wissen was man tut, sonst kann man gleich das Backup einspielen.
„Der Computer soll die Arbeit des Menschen erleichtern, nicht umgekehrt !“
+1
marm23.08.2310:54
rmayergfx
du benötigst für die Skripte überhaupt keinen Zugang per SSH oder Root Rechte. Selbst mit DSM6/7 ist es ohne Probleme möglich das in einem Aufgabenplaner zu realisieren:
Hmm, guter Punkt. Zumindest bei einem Teil der Skripte könnte ich mir direkt vorstellen, wie das geht.
Aber was mache ich, wenn das Skript eine Eingabe erfordert?
Und wie starte ich manuell, z.B. per iPad, eine 'geplante Aufgabe' des Aufgabenplaners?
Die anderen 5% der Aufgaben in der Konsole als root sind eh arbeiten am offenen Herzen und da sollte man genau wissen was man tut, sonst kann man gleich das Backup einspielen.
Das sind harmlose Suchen vergleichbar mit grep & Co. Keine Herzoperationen.
0
rmayergfx
rmayergfx23.08.2311:58
Erzähl doch mal welche Eingabe und warum dies erforderlich ist. Wenn es geht mit einem Beispiel.
Musst ja nicht gleich sämtliche Interna offenlegen.

Du kannst auf dem iPad jederzeit die App von Synology nutzen und auf die Webansicht umschalten und dann dort den Aufgabenplaner manuell starten. Oder gleich direkt über Safari einloggen. Auf dem Desktop der Synology kannst du ja eine Verknüpfung für den Aufgabenplaner ablegen um schneller dahin zu kommen.
„Der Computer soll die Arbeit des Menschen erleichtern, nicht umgekehrt !“
+1
marm23.08.2312:23
rmayergfx
Erzähl doch mal welche Eingabe und warum dies erforderlich ist.
Das sind Texte in dieser Struktur

Überschrift:
- Lorem ipsum dolor sit @tag
- amet, consetetur sadipscing
Überschrift:
- elitr, sed diam nonumy @tag @date(2023-08-23)
- eirmod tempor invidunt

Jetzt könnte eine Anweisung sein, "Filtere alle Zeilen mit Datum im August und dem Schlagwort 'tag'."
Wenn die Angaben 'August' (oder 'dieser Monat') und 'tag' immer gleich sind, kann es eine Standardaufgabe sein. Sonst bräuchte ich eine Eingabe.

Es gibt den Kurzbefehl "Skript über SSH ausführen". Damit könnte es durchaus klappen. Gibt es ein Kommando um eine Aufgabe des Aufgabenplaners anzustoßen?
0
marm23.08.2312:35
marm
Gibt es ein Kommando um eine Aufgabe des Aufgabenplaners anzustoßen?
Um es selbst zu beantworten: Ja, gibt es.
/usr/syno/bin/synoschedtask
+2
rmayergfx
rmayergfx23.08.2314:36
marm
rmayergfx
Erzähl doch mal welche Eingabe und warum dies erforderlich ist.
Das sind Texte in dieser Struktur

Überschrift:
- Lorem ipsum dolor sit @tag
- amet, consetetur sadipscing
Überschrift:
- elitr, sed diam nonumy @tag @date(2023-08-23)
- eirmod tempor invidunt

Jetzt könnte eine Anweisung sein, "Filtere alle Zeilen mit Datum im August und dem Schlagwort 'tag'."
Wenn die Angaben 'August' (oder 'dieser Monat') und 'tag' immer gleich sind, kann es eine Standardaufgabe sein. Sonst bräuchte ich eine Eingabe.

Es gibt den Kurzbefehl "Skript über SSH ausführen". Damit könnte es durchaus klappen. Gibt es ein Kommando um eine Aufgabe des Aufgabenplaners anzustoßen?
Muss da nochmals nachhaken, sind das reine Textdateien und soll der Text aus den Textdateien weiter verarbeitet werden, oder sollen die Dateien aufgrund der Informationen in verschiedene Ordner kopiert werden?
„Der Computer soll die Arbeit des Menschen erleichtern, nicht umgekehrt !“
0
marm23.08.2315:26
rmayergfx
Muss da nochmals nachhaken, sind das reine Textdateien und soll der Text aus den Textdateien weiter verarbeitet werden, oder sollen die Dateien aufgrund der Informationen in verschiedene Ordner kopiert werden?
Klar, gerne. Das sind reine Textdateien (*.md). Aus den Textdateien kann ich dann Textzeilen (= Log-Einträge oder Aufgaben) filtern und zu neuen Reports (Taskpaper, Omnifocus, Reminder) zusammenstellen. Textzeilen können zu bestimmten Textdateien und Überschriften (= Projekte oder ein Datum) ergänzt/gelöscht werden und es können Schlagwörter aktualisiert werden. Es können auch neue Textdateien erstellt werden, aber es werden keine Dateien verschoben oder gelöscht.
Und ich kann mir Textschnipsel anhand einer Suche in den Überschriften aller Dateien anzeigen lassen und in die Zwischenablage kopieren.
0
Bonzo8723.08.2315:27
Auf Synology NAS können nur Nutzer der Admin Gruppe per SSH zugreifen. Es gibt Anleitungen wie man das ändern kann, es ist aber etwas aufwändiger.
0
rmayergfx
rmayergfx23.08.2316:41
marm
Klar, gerne. Das sind reine Textdateien (*.md). Aus den Textdateien kann ich dann Textzeilen (= Log-Einträge oder Aufgaben) filtern und zu neuen Reports (Taskpaper, Omnifocus, Reminder) zusammenstellen. Textzeilen können zu bestimmten Textdateien und Überschriften (= Projekte oder ein Datum) ergänzt/gelöscht werden und es können Schlagwörter aktualisiert werden. Es können auch neue Textdateien erstellt werden, aber es werden keine Dateien verschoben oder gelöscht.
Und ich kann mir Textschnipsel anhand einer Suche in den Überschriften aller Dateien anzeigen lassen und in die Zwischenablage kopieren.
Bin jetzt noch nicht so ganz durchgestiegen, da es auch sehr speziell ist, aber mir viel da sofort Python ein. Das ist doch für solche Fälle ideal. Wenn du dann noch auf der Synology den Webserver aktivierst und eine eigene Seite baust, kannst du von dort aus die einzelnen Python Skripte per Klick starten und sogar Parameter mit einem Eingabefeld übergeben. Dann müsstest du am iPad nur die Webseite aufrufen und mit einem Klick das Skript starten und ggfs. Parameter mitgeben.
„Der Computer soll die Arbeit des Menschen erleichtern, nicht umgekehrt !“
+2

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.