Kleines Server und Client Projekt, um auf der Clientseite eine GUI benutzen zu können um dann die Befehle interpretieren
-
Hallo liebe Linux-Gemeinde,
es betrifft einen Server, der mit Ubuntu läuft, und ein Terminal, dass mit Kubuntu (aber das ist nicht so wichtig) läuft. Es gibt Vorgänge die lassen sich doch recht schlecht gestalten mit einer grafischen Benutzeroberfläche die man per Fernzugriff benutzt. Andererseits finde ich die Konsole auch nicht immer gerade schön. Ich hab daher den Wunsch für ein paar kleine Datei- und Ordneroperationen mir eine kleine GUI für die Clientseite zu erstellen, die mittels Anruf beim Server eine Verzeichnisstruktur abruft und darstellt. Mit dem Sinn auf Grundlage der in der GUI dargestellten Informationen eine oder mehrere kleine Operationen vorzugeben die man z.B. mittels Radioknöpfen setzen kann und aus diesen Setzungen soll dann der entsprechende (Konsolen)code z.B. auf der Clientseite generiert werden und dann an den Server geschickt werden, der dann die Befehle ausführen soll. Ich will aber das man auf der Serverseite festlegen kann, welche Ordner der Client abrufen darf und nur welche IP-Adresse connecten darf. Ich weiß nicht ob man das mit einem beim Server eingerichteten SSH-Zugang erreichen kann aber ich denke wenn ich SSH dann sozusagen als Server-Client-Protokoll benutze, dann brauche ich eigentlich gar kein richtiges Serverprogramm für die Serverseite schreiben. Ich müsste das Clientprogramm nur so schreiben, dass die befehle so aussehen, als wie wenn ich sie über eine SSH-Verbindung über ein Terminal mittels manueller Eingabe übergeben würde. Der benutzte User, für die im Hintergrund gestartete SSH-Verbindung, dann bei der GUI, sollte aber eben auf der Serverseite auf ein paar Ordner beschränkt sein und nur eine bestimmte IP-Adresse zulassen.
Wenn ich z.B. ein gepacktes Archiv über SSH mittels einem Konsolenbefehl entpacke bekomme ich doch die Antwort von dem Entpackungsprogramm über die SSH-Verbindung zurück oder? Und so könnte ich auch vorher den Inhalts des Archiv listen lassen, in dem der entsprechende Konsolenbefehel über SSH an den Server geschickt wird und dann die Antwort (die die liste enthält) zu Items (Danten) für das grafische Listenobjekt in der GUI auf der Clientseite, interpretiert wird.
-
Das klingt so, als wäre sshfs etwas für dich. Damit kannst du ein entferntes Dateisystem über ssh bei dir mounten und dann lokal arbeiten.
Falls das nicht reicht, kannst du, wenn genug Bandbreite da ist, auch X11 durch SSH forwarden und GUI-Programme dann direkt auf dem Server ausführen. Dafür muss der Server X11-Forwarding erlauben, also sich in der sshd_config (die befindet sich üblicherweise in /etc/ssh) die Zeile
X11Forwarding yes
finden, und der Client muss X11-Forwarding benutzen, es muss also in der Client-Konfiguration (~/.ssh/config für einzelne Benutzer oder /etc/ssh/sshd_config für alle, bei denen die Benutzerkonfiguration nichts anderes sagt)
ForwardX11 yes
stehen. Wahlweise kannst du statt der Client-Konfiguration auch beim Verbindungsaufbau die entsprechende Option mitgeben:
ssh -X servername
Wenn dann auf dem Server ein grafischer Dateisystembrowser installiert ist, kannst du ihn einfach ausführen, und dein lokales X11-Display wird dafür benutzt.