SSHConfig - GUI zur Verwaltung von SSH

Status
Für weitere Antworten geschlossen.

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
SSHConfig - GUI zur Verwaltung von SSH

Die Verwendung einer Public-Key gestützten SSH-Verbindung setzt den Aufbau einer bestimmten Ordnerstruktur, der Generierung nötiger Verbindungsschlüssel sowie Konfigurationsdateien inkl. der entsprechenden Ordner- und Dateirechte voraus. All diese Schritte werden in der Regel über das Terminal (auch Konsole genannt) eines Unix bzw. GNU/Linux fähigen Rechners durchgeführt. Innerhalb des Synology DiskStation Managers (DSM) werden diese Schritte durch die GUI von SSHConfig übernommen.

Hinweise zur Installation:
  • SSHConfig kann in der jeweils aktuellsten Version über die alternative Paketquelle - Community Package Hub - (https://www.cphub.net/?p=sshconfig) heruntergeladen und im Anschluss über das DSM Paket-Zentrum manuell installiert werden.
  • Weiterhin kann SSHConfig auch direkt über das DSM Paket-Zentrum als Installationspaket, sowie für die Bereitstellung zukünftiger Updates zur Verfügung gestellt werden. Hierfür muß im Vorfeld https://www.cphub.net dem Paket-Zentrum als "alternative Paketquelle" hinzugefügt werden.

Hinweise zur Nutzung:
SSHConfig unterliegt der GNU GENERAL PUBLIC LICENCE Version 3 von 29. Juni 2007 und wird somit lizenzkostenfrei angeboten. Eine Haftung wird grundsätzlich ausgeschlossen. Hierzu ein Auszug aus der GPL3...
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Viel Spaß für alldiejenigen von euch, die sich so ein Tool immer schon mal gewünscht haben!

Tommes
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: geheim5000

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
SSHConfig Version 0.1 Release Notes vom 18.03.2020

Bei dieser App handelt es sich um eine Neuentwicklung und trägt absichtlich eine niedrige Versionsnummer. Als Beta würde ich sie jedoch nicht mehr deklarieren wollen, da ich bereits ausgiebige Tests durchgeführt habe. Nichts desto trotz kann es hier und da zu unbeabsichtigten Fehlfunktionen und damit verbunden, zu Datenverlust kommen. Daher sei hier nochmal erwähnt, das ihr das alles auf eure eigene Kappe macht und ich keine Verantwortung sowie Haftung für mögliche Schäden übernehme.

Was kann die App bereits
  • Anzeigen, ob der SSH-Dienst im DSM aktiviert ist und auf welchen Port SSH lauscht.
  • Anzeigen, das der Benutzer-Home-Dienst aktivert werden muss, sollte dieser deaktivert sein.
  • Erstellen, anzeigen und löschen der SSH-Ordnerstruktur von Benutzern aus der Administratorengruppe und von root. Während der Erstellung einer SSH-Ordnerstruktur wird ein RSA-Schlüsselpaar mit 4096 Bit erstellt. Das Vergeben einer Passphrase ist optional möglich. Ordner- und Dateirechte werden entsprechend gesetzt.
  • Anzeigen oktaler sowie symbolischer Ordner- und Dateirechte sowie der Anzeige von Eigentümer und Gruppe.
  • Betrachten der Dateien id_rsa, id_rsa.pub sowie config (falls vorhanden).
  • Optionales downloaden der Datei id_rsa und id_rsa.pub. (Der Download aller anderen Dateien halte ich aktuell für unnötig)
  • Betrachten und löschen von Einträgen bzw. Zeilen aus der known_hosts
  • Betrachten, hinzufügen und löschen von Einträgen bzw. Zeilen der authorized_keys. Hier ist es möglich, Inhalte der id_rsa.pub entfernter Server per Copy & Paste der authorized_keys hinzuzufügen.

Die Grafische Benutzeroberfläche (GUI)
  • Der Zugriff auf und die Bearbeitung der Inhalte von SSHConfig ist nur Benutzern aus der Gruppe der Administratoren gestattet.
  • Die GUI ist für Mehrsprachigkeit ausgelegt und wird der Systemsprache des DSM angepasst. Aktuell sind die Sprachen Deutsch und Englisch implementiert.
  • Der responsive, grafische Aufbau der Benutzeroberfläche basiert auf dem Bootstrap 4 Framework und unterliegt somit dem HTML 5 / CSS 3 Standard. Von einer Überprüfung der Validität nach dem W3C - Standard wurde aber abgesehen.
  • Bis auf das SSHConfig Logo und einiger weniger, auf bootstrap 4 basierender Grafiken, stammen sämtliche Grafikelemente (Icons) aus dem Portfolio der Google Material Design Icons. Hierbei werden sämtliche Komponenten lokal vorgehalten und nicht übers Internet nachgeladen.
  • Die GUI ist des Weiteren auf die Verwendung von JavaScript sowie jQuery Elementen ausgelegt, wobei auch hier sämtliche Elemente lokal vorgehalten und nicht übers Internet nachgeladen werden.

Das im Hintergrund arbeitende System
  • Die komplette Programmlogik beruht auf der jeweils aktuellen, im DSM implementierten BASH Version.
  • JavaScript und jQuery Elemente unterstützen hierbei optional die Abläufe und die Verarbeitung der Datenströme.
  • Implementierung einer GET/POST Request Engine um anfallende Formulardaten, Parameterübergaben und Seitenaufrufe zu verarbeiten, wobei sämtliche Formulardaten über die POST-Methode, an Links angegangene Variablen über die GET-Methode übertragen werden. Aus Gründen der Sicherheit werden alle übertragenen Variablen intern durch ein assoziatives Array maskiert bevor diese weiterverarbeitet werden.

Was kann die App (leider) noch nicht
  • Das Laden von Dateiinhalten in ein HTML - <textarea> Feld klappt zwar, das Editieren und speichern von Änderungen leider noch nicht, bzw. nur zeilenweise. Hier scheitert es noch an der Variablenübergabe mittels POST bzw. der Verarbeitung, wenn Leerzeilen und/oder Zeilenumbrüche vorhanden sind. Wer hier eine Lösung für das Problem hat, darf sich gerne einbringen.
  • Das Hinzufügen einer entfernten id_rsa.pub mittels Drag & Drop. Die nötige jQuery Umgebung ist bereits implementiert, jedoch habe ich noch keine passende Routine gefunden, die mir zusagt.
 

RichardB

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2019
Beiträge
3.411
Punkte für Reaktionen
755
Punkte
174
Wow! Habe es gerade installiert und bin am Rumprobieren.
Gratuliere. Das ist wirklich eine beeindruckende Anwendung. Vielen Dank für die Mühe.
 

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.948
Punkte für Reaktionen
99
Punkte
134
Auch von mir ein Wow! Gratulation zu dem neuen Projekt!
Werde es installieren und rumprobieren - jedenfalls vorerst nur auf Backup-DS! :)
 

the other

Benutzer
Sehr erfahren
Mitglied seit
17. Okt 2015
Beiträge
2.099
Punkte für Reaktionen
539
Punkte
154
Moinsen,
unfassbar. Habe mich ewig gequält mit dem Thema und am Ende mit vier Anleitungen, die sich alle ergänzten, es via Terminal zum Laufen gebracht. Heute geht das schnell und idr ohne Probleme.
Super super super, dass du das per gui mit den Automatismen (Rechte!!!) so eingerichtet hast. Das bewegt hoffentlich viele hier dazu, sich nicht länger dem wichtigen Thema Pulickey_Auth zu entziehen. Keine Ausreden mehr, ha!
Ich schau es mir auf jeden Fall auch an auf der 2 NAS und spiel rum damit. Aber schon jetzt: unfassbar genial und riesen Dank...
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
/etc/synoinfo.conf solltest du noch auf ssh_port prüfen.
Wenn man einen anderen Port gesetzt hat wird dieser sonst nicht erkannt.
In der sshd_config steht nur der standardmäßig auskommentierte 22.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
Na das war ja schonmal ein guter Start, was ich jetzt auch mal mit einem Wow beantworte. Mich freut die bisherige, positive Resonanz von euch.

/etc/synoinfo.conf solltest du noch auf ssh_port prüfen.
Eigentlich passiert das (in der main.sh, Zeile 73)

Wenn man einen anderen Port gesetzt hat wird dieser sonst nicht erkannt.
Ist das bei dir so? Falls ja, dann werde ich das natürlich noch anpassen, Jedoch resultiert daraus einzig ein Anzeigefehler, der jedoch keine Relevanz auf den Programmablauf hat. Das ist eine reine Information für den Benutzer.

Tommes
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Möglich, hab ich nicht so weit getestet. ist halt irritierend, wenn er mir Port 22 anzeigt in SSHConfig und dann doch den andern gesetzten nimmt.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Also Hut ab !
Ich erledige das jedes Mal mir einem 5-Zeiler :

Rich (BBCode):
mkdir -p /root/.ssh
chmod 0700 /root/.ssh
ssh-keygen -b 4096 -t rsa -f /root/.ssh/id_rsa
cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
cp /root/.ssh/id_rsa /volume1/homes/admin

Und damit ich die immer finde, hab ich auf meiner HomePage sogar eine Anleitung geschrieben:

root_key

Ich habe mir dein Programm auf meiner DS118 installiert und werde damit ein wenig rumspielen.
… dass mit dem Port „22“ stimmt … wird bei mir auch angezeigt und ich benutze definitive einen anderen ;-)

Auf alle Fälle sehr interessant !!!

Gruß, BigRonin
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
Soderle... das Problem mit dem falsch angezeigten SSH-Port sollte behoben sein. PsychoHH hat mir grade einen Wink mit dem Zaunpfahl gegeben. Ich Seppel habe mir wohl den flaschen Code-Schnipsel aus UBNG gekaut :eek:

Mit dem Update warte ich aber noch was... vielleicht kommen ja noch weitere Fehler, Hinweise oder Verbesserungen von euch.

Tommes
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
SSHConfig Version 0.2 Release Notes vom 28.03.2020

  • Der SSH-Port wurde nicht korrekt ermittelt und ausgegeben. Fehler wurde behoben.

Tommes
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.021
Punkte für Reaktionen
320
Punkte
189
Klasse Tool. Ich stelle mir die Frage, wie mit dem Userdefinierten Key ein Rootzugang möglich ist. Auf jeder DS habe ich dafür das Verzeichnis und Key angelegt:

/root/.ssh/authorized_keys

den ich mit dem Putty Key Generator erstellt habe. Diesen verwende ich dann insbesondere in WinSCP mit der zugehörigen PPK-Datei, um als root einzuloggen. Um nun mit diesem vorbildlichen Tool eine PPK generieren zu können, müssten dann alle Informationen unter

/var/services/homes/root/.ssh/authorized_keys

liegen?
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
Zur Info. Sämliche Benutzer-Home-Ordner liegen unter /var/services/homes/[BENUTZER], der Systembenutzer root speichert seine Daten dagegen unter /root.

Wenn du also einen root-Zugang einrichten möchtest, dann muss der öffentliche RSA-Key von Putty bzw. WinSCP nach /root/.ssh/authorized_keys. Wenn du als Benutzer aus der Gruppe der Administratoren einen Zugriff einrichten möchtest, dann nach /var/services/homes/[BENUTZER]/.ssh/authorized_keys.

Ich nutze sowohl Putty als auch WinSCP um root und admin Zugriff auf meine DS'en zu gewähren. Ebenso habe ich all meine DS'en inkl. dem RasPi miteinander per SSH bzw. RSA-Key verbunden. Jeweils im Austausch mit dem jeweiligen öffentlichen Schlüssel.

Tommes
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.021
Punkte für Reaktionen
320
Punkte
189
Funktioniert sehr gut. Da man in der authorized_keys zeilenweise mehrere Schlüssel hinterlegen kann, habe ich nun zwei root-Schlüsselpaare. Den PuTTY Key Generator braucht man halt noch dazwischen, um das Paar zu erhalten.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.164
Punkte für Reaktionen
63
Punkte
68
Das Paar kann man auch auf der DS mit ssh-keygen erzeugen. Im $HOME/.ssh Verzeichnis liegen dann eine id_rsa und id_rsa.pub. id_rsa.pub kopiert man dann nach authorized_keys und ändert die Rechte der Datei mit chmod 0600 authorized_keys. Die id_rsa Datei wird dann in Putty importiert und als .ppk abgespeichert.

Man muss aber nicht für für jeden Server/Pi ein eigenes Pärchen erzeugen, man kann. Wenn man nur vom PC aus drauf geht und sich die Server nicht untereinander unterhalten sollen, reicht der Eintrag des Master Public Keys in der lokalen authorized_keys . Oder man kopiert das komplette .ssh Verzeichnis eines vorhandenen Servers auf den neuen Server/Pi z.B. mit "scp -pr .ssh root@pi:.". Noch einmal das Password eingeben(Password login kurz in sshd_config erlauben) und dann nie wieder.
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.021
Punkte für Reaktionen
320
Punkte
189
Die Frage wäre, ob sich ssh-keygen für solche Dinge in das Tool integrieren lassen, denn ich glaube fast, dass viele damit überfordert wären.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
Naja... SSHConfig ist ja eigentlich genau an diejenigen Benutzer gerichtet, die die Konsole aus Unsicherheit oder mangelnder Erfahrung nur sehr ungern nutzen würden um z.B. einen SSH-Zugang zu Fuß einzurichten. Sicherlich gibt es bei SSHConfig noch Luft nach oben und wer sich auskennt und obendrein noch den ein oder anderen Trick und Kniff auf Lager hat, ist hier sicherlich gern gesehen und vielleicht lässt sich das ein oder andere auch in die GUI implementieren. Aber wie gesagt... diese App ist gewollt einfach gehalten.

Tommes
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.021
Punkte für Reaktionen
320
Punkte
189
Ich finde Deine APP sehr gut, weil genau solche Dinge gebraucht werden. Bezogen auf das Abrunden mit solchen Sachen, wie ssh-keygen, würde das schon Sinn machen. Ich zB. wusste gar nicht, dass es das Tool im Linux und auch auf den Synologys gibt. Ich kannte bislang nur den Weg über PuTTY. Der Schlüssel aus Deinem Tool lässt sich dort problemlos importieren und ein Schlüsselpaar generieren, das geht schon gut und wie Du bereits sagst, man kann es auch nur einmal machen und das eine Schlüsselpaar für elle Server und Verbindungen einsetzen, so mache ich das ja auch schon seit Jahren.

Konsequenter wäre halt der Weg über ssh-keygen und ich denke, wenn es einfach ginge, würde ich auf jeder DS ein eigenes Paar anlegen, das würde im Grunde die Sicherheit erhöhen.
 

42HAL

Benutzer
Mitglied seit
10. Apr 2018
Beiträge
55
Punkte für Reaktionen
2
Punkte
8
Ich habe ein paar generelle Fragen im Zusammenhang im ssh (sftp), falls es hier nicht hinpasst bitte an die Mods': verschieben.

Ich habe die Anforderung auf einer Synology DSM 6.x einem! Benutzer sftp einzurichten, die Anwendung die der Benutzer einsetzt möchte gerne vorher den öffentlichen Schlüssel importieren.
Der vermeintlich beste Weg dem Benutzer (sftp) ssh Zugang zu verschaffen scheint ihn der Gruppe der Administratoren zuzuordnen (damit ich möglichst beim Standard bleibe und updates in der Zukunft mir nicht irgendwelche Änderungen zurücksetzen), wirklich glücklich bin ich damit nicht (müßte noch sehen, wie ich dem Benutzer im Nachgang wieder Rechte nehmen könnte). Nun meine Fragen:

1. gibt es eine einfachere Methode das o.g. Ziel zu erreichen?
2. @Tommes in Deinem sshconfig Paket wird der Benutzer nicht angezeigt obwohl er Mitglied von den Administratoren- ist, was ist Dein Kriterium damit man Schlüssel für einen Benutzer verwalten kann?
3. obwohl ich manuell keinen Schlüssel erzeugt habe, benutzt das System einen - welcher ist das standardmäßig - ich muß den verwendeten public key in die besagte Anwendung importieren?
4. @Tommes: ergäbe es Sinn- / wäre es mit geringem Aufwand möglich all das in in Deinem sshconfig Paket unterzubringen (Benutzer ssh-Rechte zu geben und ihn dann direkt in der Oberfläche anzuzeigen - bzw. zu verwalten?

Falls sich andere Lösungen anbieten - immer her damit ;-)!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.088
Punkte für Reaktionen
1.072
Punkte
314
Hi!

Ich fang mal mit dem Punkt 4. an...
ergäbe es Sinn- / wäre es mit geringem Aufwand möglich all das in in Deinem sshconfig Paket unterzubringen
Ehrlich gesagt spiele ich schon länger mit dem Gadanken, dieses Paket aus dem Verkehr zu ziehen, da sich mein Horizont in Sachen SSH mitlerweile ein wenig erweitert hat und ich das so heute wohl nicht mehr anbieten würde. Des weiteren wird es auch keine Portierung auf DSM 7 geben, da dies die restritivere DSM Systemumgebung verbietet. Ich würde von der Verwendung von SSHConfig also absehen, da dieses Tool keine Zukunft hat.

Deinem sshconfig Paket wird der Benutzer nicht angezeigt obwohl er Mitglied von den Administratoren- ist
Es könnte sein, das du unter Systemsteuerung > Berechtigungen dem entsprechenden Benutzer noch die nötigen Rechte verpassen musst.

obwohl ich manuell keinen Schlüssel erzeugt habe, benutzt das System einen - welcher ist das standardmäßig
Je nach Verschlüsselungsart (RSA, DSA, ECDSA, EdDSA etc.) gibt es gewisse Standardnamen, falls kein abweichender Dateiname angegeben wurde. Dieser lautet unter Verwendung eines RSA-Schlüssels id_rsa für den Private Key und id_rsa.pub für den Public Key. Leider kannst du diese Dateinamen innerhalb SSHConfig nicht ändern, was ich heute z.B. auch so nicht mehr anbieten würde.

gibt es eine einfachere Methode das o.g. Ziel zu erreichen?
Ja. Ich kann nur empfehlen, sich das nötige Wissen anzueignen um die SSH-Einrichtung von Hand einzurichten. Der positive Nebenefekt dabei ist, das du immer genau weißt, was du tust und wen oder was du mit welcher Berechtigung in dein System lassen möchtest. SSHConfig kratzt hier tatsächlich nur an der Oberfläche und bietet nur einen rudimentären Funktionsumfang um eine SSH-Ordnerstruktur aufzubauen.

Zu deiner Aufgabenstellung.
Möchtest du einem Benutzer erlauben, das er von deiner DS aus eine SSH bzw. SFTP Verbindung auf einem Remote Server aufbauen kann um dort Daten abzulegen, oder möchtes du einem Remote Benutzer erlauben, Zugriff auf deine DS per SSH/SFTP zu erhalten um Dateien lokal abzulegen? Des weiteren erlaubt es der DSM nur Benutzern aus der Gruppe der Administratoren eine SSH-Verbinung aufzubauen, oder halt root. Ob es hier in Verbindung mit SFTP andere Bedingungen gibt, kann ich nicht beurteilen, weil ich diesen Dienst nicht nutze. Denke aber mal, das das hier genaus ist wie bei SSH an sich.

Und je mehr ich darüber nachdenke... ich glaub, ich werd das Paket mal aus dem Verkehr ziehen. Ist wohl besser so.

Tommes
 
  • Like
Reaktionen: peterhoffmann
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat