Gsissh ist bereits im Globus Toolkit (GT) integriert. Sie können es als kompletten Ersatz des normalen Openssh verwenden. Gsisshi bietet ihnen die spezifischen Vorteile des Grids‚ wie Single sign-on, erhöhte Sicherheit durch Verwendung von Proxys oder die automatischen Proxy-Weiterleitung.
Die hier vorgestellten Tricks funktionieren nur mit der Kommandozeilen-Version gsissh jedoch nicht mit der Stand-alone Java-Version Gsissh-Term. Um die Installation zu erleichtern stellen wir ihnen vor-kompilierte gsissh-Pakete zur Verfügung.
In den folgenden Abschnitten wird vorausgesetzt, dass gsissh auf ihrem System installiert ist!
Oft können die Gridknoten nicht direkt erreicht werden. Aus Sicherheitsgründen stehen sie etwa hinter einer Firewall oder in einem privaten Netz. Ein Beispiel sind die Supercomputer innerhalb des DEISA-Grids. Alle Knoten sind durch das private DEISA Netz untereinander verbunden, vom restlichen Internet sind sie jedoch abgeschirmt. Nur einige, so genannte Door Nodes, sind weltweit erreichbar. Um von außen auf einen inneren Knoten zugreifen zu können geht man grundsätzlich so vor:
Per gsissh verbindet man sich mit dem Door Node. Nachdem man eingeloggt ist ruft man das dort installierte gsissh auf und kann damit den geschützten internen Rechenknoten erreichen.
Gsissh und das "Single sign-on"-Paradigma des Grids erlauben bereits einen komfortablen Zugriff, da das Kennwort für die zweite Verbindung nicht noch einmal eingegeben werden muss (dank der automatischen Proxy-Weiterleitung von gsissh).
Zur weiteren Erhöhung der Benutzerfreundlichkeit kann der manuelle zweite login-Schritt automatisiert werden:
Gsissh (aber nicht GsisshTerm) verwendet die ssh-Konfigurationsdatei, die per Voreinstellung unter $HOME/.ssh/config zu finden ist. Fügen sie folgende Zeile in diese Konfigurationsdatei ein:
GSSAPITrustDNS no
|
Nun wird der Zugang über den Door Node konfiguriert. Fügen sie ZWEI Zeilen in die Konfigurationsdatei nach folgendem Schema ein:
Host Zielrechner
|
|
ProxyCommand /pfad/zu/globus/bin/gsissh -X -p port DoorNode /pfad/zu/netcat Zielrechner port
|
Als Beispiel die notwendige Konfiguration um über den SARA-Door Node p6012.huygens.sara.nl den andernfalls versteckten DEISA Supercomputer louhi-deisa.csc.fi zu erreichen.
Host louhi-deisa.csc.fi
|
|
ProxyCommand /usr/local/globus-4.2.1/bin/gsissh -X -p 2222 p6012.huygens.sara.nl /usr/bin/netcat louhi-deisa.csc.fi 2222
|
Hier werden die absoluten Pfadangaben der Dateien verwendet, da die Umgebungsvariablen auf dem Door Node nicht gesetzt werden. Sie müssen die Pfadnamen ihrem lokalen PC anpassen.
Anmerkung: Durch den Schalter -X wird die X11-Weiterleitung aktiviert. 2222 ist ein beliebiger Port.
Den geschützten Supercomputer loudi-deisa.csc.fi erreichen sie von ihrem lokalen PC nun nach dem Schema gsissh Zielrechner :
gsissh louhi-deisa.csc.fi
|
Über den eingerichteten Tunnel können sie auch Dateien mit dem Programm gsiscp (in GT enthalten) kopieren. Beispielsweise funktioniert das Kopieren der lokale Datei /tmp/test.txt in das Verzeichnis /tmp auf den Knoten louhi so:
gsiscp /tmp/test.txt louhi-deisa.csc.fi:/tmp
|
Die Methode ist sicher und alles funktioniert nun ohne die Kennwörter immer wieder eintippen zu müssen!
Hier wird die Remote-Visualisierung mit TurboVNC und normalem ssh auf den LRZ Systemen rvs1, gvs1 und gvs2 beschrieben. In der Grid-Umgebung erreichen sie dies am einfachsten mit Gsissh-Term und dem enthaltenen TurboVNC.
Jedoch können Sie alternativ auch gsissh verwenden und die benötigten Ports durch einen Tunnel leiten. Der Tunnelmechanismus ist aber dann notwendig, wenn die Maschine, die sie benutzen möchten, von einer restriktiven Firewall geschützt ist und sie somit nicht direkt auf die Ports zugreifen können. Wenn die Ports für Sie direkt erreichbar sind (sie sind bereits im internen Netz), müssen sie folgende Konfiguration nicht vornehmen.
Da auf der rvs1 die vier Ports 5951, 5952, 5953 und 5954 offen sind, müssen diese Ports durch den Tunnel geleitet werden. Als Beispiel wird wieder der Door Node p6012 verwendet um in das DEISA Netz zu gelangen. Für diesen Tunnel sind die folgenden zwei Zeilen (die zweite Zeile ist sehr lang!) in der Konfigurationsdatei notwendig:
Host rvs1-deisa.hlrb2.lrz-muenchen.de
|
|
ProxyCommand /usr/local/globus-4.2.1/bin/gsissh -Y -p 2222 -L 5954:rvs1-deisa.hlrb2.lrz-muenchen.de:5954 -L 5953:rvs1-deisa.hlrb2.lrz-muenchen.de:5953 -L 5952:rvs1-deisa.hlrb2.lrz-muenchen.de:5952 -L 5951:rvs1-deisa.hlrb2.lrz-muenchen.de:5951 p6012.huygens.sara.nl /usr/bin/netcat rvs1-deisa.hlrb2.lrz-muenchen.de 2222
|
Die getunnelte Verbindung zu rvs1 mit Portweiterleitung stellen sie auf ihrem lokalen PC so her:
gsissh rvs1-deisa.hlrb2.lrz-muenchen.de
|
Wie auch hier beschrieben starten Sie die Sitzung auf dem Zielrechner rvs1 indem sie in das gsissh-Fenster eingeben:
rvnc
|
Sie benötigen TurboVNC auf ihrem Rechner - hier finden sie unsere Installationsanleitung.
Starten sie TurboVNC auf ihrem lokalen PC und verbinden sie zu ihrem lokalen Rechner (localhost) auf den Port, den Sie durch rvnc im vorhergehenden Schritt zugewiesen bekommen haben (z.B. Port 51).
|
Damit startet die grafische Sitzung auf der Zielmaschine.
Mac OS und Linux-Benutzer können das Programmpaket VirtualGL verwenden. Dessen Modus vglconnect ist besonders komfortabel, da die Fenster des entfernten Systems wie lokale Anwendungsfenster dargestellt werden. Außerdem ist dieser Modus besonders leistungstark. Die Zugangsmethode wird VGL-Bildtransport oder direct mode genannt und ist hier beschrieben. Wir haben ein vglconnect Skript erstellt, das gsissh anstelle von ssh benutzt.
Wieder müssen sie zuerst die Port-Weiterleitung durch den Door Node konfigurieren. Wenn Sie bereits die zwei Zeilen für TurboVNC in ihre Konfigurationsdatei eingetragen haben, sind sie schon fertig. Wenn sie TurboVNC nicht benötigen können sie alternativ Folgendes eintragen (wieder Pfade anpassen!):
Host rvs1-deisa.hlrb2.lrz-muenchen.de
|
|
ProxyCommand /usr/local/globus-4.2.1/bin/gsissh -Y -p 2222 p6012.huygens.sara.nl /usr/bin/netcat rvs1-deisa.hlrb2.lrz-muenchen.de 2222
|
Laden sie nun unser vglconnect-Skript auf ihren PC. Rufen sie das Skript dann so auf:
./vglconnect -s rvs1-deisa.hlrb2.lrz-muenchen.de
|
Für MacOS Nutzer ist eine kleine Anpassung notwendig: Die $DISPLAY-Variable wird nicht richtig gesetzt (etwa auf /tmp/launch-VrCZZD/:0). Verwenden sie daher eine zusätzliche Option:
./vglconnect -s -display :0 rvs1-deisa.hlrb2.lrz-muenchen.de
|
Zum Testen der Konfiguration starten sie nun eine grafische Anwendung auf der rvs1 – beispielsweise indem Sie in das Terminalfenster auf rvs1 eingeben:
vglrun -d :1,0 /opt/VirtualGL/bin/glxspheres
|
Sollten Probleme auftreten oder sie Fragen haben wenden sie sich bitte an grid-support@lrz.de.