IN KÜRZE
Schwierigkeit
Einfach
Benötigt
HPC Nutzeraccount
Uni-Netz oder Uni-VPN für Ersteinrichtung.
SSH Basics
Verbindungen zum Cluster werden in der Regel mittels SSH-Protokoll hergestellt. Linux und Mac OS X unterstützen dieses Protokoll standardmäßig, für Windows gibt es mehrere Programme, die eine SSH-Verbindung ermöglichen. Zum Übertragen von Dateien gibt es außerdem unter anderem die Secure-Copy-Funktion (scp
), siehe weiter unten. Auch Fenster zu öffnen ist möglich, wenn die Verbindung und Ihr System dafür eingerichtet sind.
Die Adresse des Clusters wird Ihnen bei der Einrichtung eines Accounts per E-Mail mitgeteilt. Sie erreichen ihn also zum Beispiel mit folgendem Aufruf:
ssh <IhrUsername>@<Cluster-Adresse>
Diese Seite enthält detaillierte Informationen zum Aufbau einer SSH-Verbindung, sowohl unter Linux als auch Mac OS sowie Windows. Sie sollten sich in jedem Fall den Abschnitt über Linux durchlesen, weil die anderen sich stark darauf beziehen.
Die Authentifizierung beim Anmelden auf dem Cluster erfolgt durch Eingabe von Username und Passwort (dies ist dasselbe Passwort wie bei den anderen Diensten der Uni, z.B. Webmail). Es lässt sich aber auch ein Public-/Private-Key-Paar (siehe auch Wikipedia zu Public/Private-Key-Verschlüsselung) einrichten, sodass von einem Rechner die Verbindung zum Cluster ohne Passworteingabe möglich ist.
Achtung:
- Ihr Nutzeraccount muss für HPC freigeschaltet sein, damit Sie sich zum Cluster verbinden können.
- Der Login mit Username und Passwort ist nur aus dem Uni-Netz oder Uni-VPN möglich! Der Zugriff von außerhalb erfordert, dass Sie einen passwortlosen Zugang mit Public-/Private-Keypaar einrichten, siehe unten.
Standardmäßig können Sie über eine SSH-Verbindung nur konsolenbasierte Programme ausführen. Es ist aber auch möglich, Programme auszuführen, die Fenster öffnen, wenn auf Ihrem Computer ein X-Server zur Verfügung steht und die SSH-Verbindung entsprechend konfiguriert ist. Dies ist im Folgenden näher beschrieben.
SSH einrichten: Linux
In der Linux-Konsole können Sie eine SSH-Verbindung mit dem Befehl ssh
aufbauen:
ssh <IhrUsername>@<Cluster-Adresse>
X-Unterstützung
Für die X-Unterstützung müssen Sie die SSH-Verbindung mit -X
starten:
ssh -X <IhrUsername>@<Cluster-Adresse>
Die alternative Option -Y
funktioniert fast identisch. Der Unterschied besteht darin, dass die Verbindung als “Trusted” betrachtet wird, das heißt es werden weniger Sicherheitschecks durchgeführt. Dies ist nur empfohlen, wenn ein Programm mit -X
nicht läuft.
Konfiguration von SSH-Verbindungen
Sie können Ihre SSH-Verbindung zum Cluster vorkonfigurieren und müssen dann nicht jedes Mal den obigen SSH-Aufruf komplett eingeben. Dazu öffnen Sie auf Ihrem lokalen Rechner die Datei <Ihr Home-Verzeichnis>/.ssh/config
mit einem Texteditor und geben ein:
host omni
HostName <Cluster-Adresse, aus Sicherheitsgründen hier nicht angezeigt>
User <Ihr Username>
ForwardX11 yes
Die oberste Zeile ist der Name Ihres Kürzels. Sie können einen beliebigen Namen vergeben, in diesem Beispiel omni
. In der Zeile User
muss der Username stehen, mit dem Sie sich auf dem Cluster einloggen. Die Zeile ForwardX11 yes
ist optional. Wenn Sie diese Zeile hinzufügen, werden SSH-Verbindungen immer mit X-Unterstützung gestartet. Dies ist identisch zur -X
-Option, das Äquivalent für die -Y
-Option wäre ForwardX11Trusted yes
. Es gibt noch eine Reihe von anderen Optionen, die auf der OpenSSH-Website beschrieben werden.
Mit dieser Konfiguration können Sie sich per Kurzbefehl auf dem Cluster einloggen:
ssh omni
Schlüsselpaar einrichten
Um sich auf dem Cluster einzuloggen, ohne jedes Mal das Passwort eingeben zu müssen, können Sie sich ein Public/Private-Key-Paar generieren. Diese Funktion ist in SSH bereits eingebaut. Sie müssen dazu folgende Schritte durchführen:
- Führen Sie auf Ihrer lokalen Maschine
ssh-keygen
aus. Dies generiert ein Schlüsselpaar, das standardmäßig die Dateinamenid_rsa
(privater Schlüssel) bzw.id_rsa.pub
(öffentlicher Schlüssel) hat und im Unterordner.ssh
in Ihrem lokalen Home-Verzeichnis steht. Falls bereits ein Schlüsselpaar existiert, bekommen Sie eine Warnmeldung. Sie können dann entweder mitStrg+C
abbrechen und einfach das bestehende Schlüsselpaar überschreiben, oder einen anderen Pfad bzw. Dateinamen für das neue Schlüsselpaar vergeben. - Sie werden gefragt, ob Sie eine Passphrase vergeben wollen. Diese Passphrase müssen Sie in regelmäßigen Abständen eingeben.
- Anschließend öffnen Sie die Datei
id_rsa.pub
mit einem Texteditor. - Loggen Sie sich auf dem Cluster ein, wechseln Sie in das dortige
.ssh
-Verzeichnis und öffnen Sie die Dateiauthorized_keys
in einem weiteren Texteditor. - Kopieren Sie den Inhalt von
id_rsa.pub
in dieauthorized_keys
-Datei.Achtung: Stellen Sie sicher, dass Sie den öffentlichen (.pub
) und nicht versehentlich den privaten Schlüssel kopieren. Ihr privater Schlüssel sollte immer auf Ihrem eigenen Rechner bleiben und Sie sollten ihn mit niemandem teilen. - Speichern Sie
authorized_keys
ab. - Loggen Sie sich auf dem Cluster aus (mit
exit
) und wieder ein, um zu testen, ob der Zugang funktioniert.
Tipp: Sie können mehrere Schlüssel-Einträge in authorized_keys
abspeichern, wenn Sie sich von mehreren Computern einloggen wollen. Die Einträge sollten durch Leerzeilen getrennt sein. Ein Eintrag besteht aus drei, durch Leerzeichen getrennte, Teilen: einem Informationsblock über den verwendeten Verschlüsselungsalgorithmus (normalerweise ssh-rsa
), dem eigentlichen Schlüssel und einem optionalen Namen, den Sie selbst vergeben können. Damit behalten Sie den Überblick, welcher Schlüssel welcher ist.
SSH einrichten: MAC OS
In Mac OS können Sie eine Linux-ähnliche Konsole aufrufen, indem Sie in der Spotlight-Suche terminal
eingeben oder das Programm iTerm installieren. Für X-Unterstützung muss außerdem die Software XQuartz installiert sein.
Die Einrichtung erfolgt dann wie bei Linux-Systemen. Auch ein passwortloser Zugang ist auf die gleiche Art möglich. Wenn XQuartz installiert ist, muss ein zusätzlicher Schritt durchgeführt werden: in der Datei ~/.ssh/config
müssen die folgenden Zeilen hinzugefügt werden:
host *
XAuthLocation /opt/X11/bin/xauth
Anschließend funktioniert die X-Unterstützung auf die gleiche Art wie in Linux.
SSH einrichten: Windows
Unter Windows gibt es eine Reihe von Programmen, die SSH unterstützen. Hier werden die Einrichtung von PuTTY Version 0.70 sowie MobaXTerm Version 10.5 kurz erläutert. Ein reines Kommandozeilenprogramm bietet die Windows-Version von OpenSSH, deren Einrichtung unter folgendem Link beschrieben ist. Es kann aber prinzipiell auch andere Software verwendet werden, solange sie SSH unterstützt.
Putty (und WinSCP)
Um sich mittels Putty zum Cluster zu verbinden, müssen Sie mindestens auf der Konfigurationsseite von Putty im Feld “Host Name” die Adresse des Clusters eingeben. Die anderen Felder können auf ihren Standardwerten belassen werden. Mit einem Klick auf “Open” kann nun bereits eine Verbindung aufgebaut werden.
Es bietet sich allerdings an, zusätzlich eine Konfiguration für den Cluster abzuspeichern, dann müssen die Informationen nicht jedes Mal neu eingegeben werden. Außerdem können dieselben Features, die oben im Abschnitt über Linux beschrieben wurden (X-Unterstützung, passwortloser Zugang, etc.), konfiguriert werden.
Putty verfügt allerdings über keinen eigenen X-Server. Hierfür muss ein separates Programm wie beispielsweise XMing installiert werden und vor Putty gestartet werden.
Um die Konfiguration zu speichern muss im Feld “Saved Sessions” ein Name für die Konfiguration vergeben und mit “Save” bestätigt werden.
Putty-Einstellungen
Um Einstellungen in Putty speichern zu können, müssen Sie zuerst eine “Saved Session” für den OMNI-Cluster erzeugen, indem Sie auf der Haupt-Konfigurationsseite einen Namen für die Session eingeben und mit “Save” abspeichern.
Das Konfigurationsmenü von Putty weist eine große Menge an Einstellungen auf, die durch Klicken auf Elemente des Baums auf der linken Seite angewählt werden können. Achtung: nach dem Ändern von Putty-Einstellungen muss immer auf der Startseite (“Session”) mit “Save” die entsprechende Konfiguration gespeichert werden. Sinnvolle Einstellungen in Putty sind beispielsweise:
- Ein vorher erzeugtes Schlüsselpaar kann zum Einloggen verwendet werden, indem auf der Seite “Connection > SSH > Auth” der Pfad zum privaten Schlüssel auf dem eigenen Rechner angegeben wird. Der zugehörige öffentliche Schlüssel muss natürlich wie bereits beschrieben auf den Cluster kopiert werden, damit der passwortlose Login funktioniert.
- Wenn das Häkchen “Enable X11 Forwarding” im Menü “Connection > SSH > X11” gesetzt wird, wird die Verbindung immer mit X-Unterstützung gestartet.
- Auf der Seite “Connection > Data” kann ein “Auto-Login Username” vergeben werden. Dieser wird dann automatisch verwendet und muss dann nicht mehr bei jedem Einloggen erneut eingegeben werden.
Passwortloser Zugang
Putty hat einen eigenen Key-Generator namens PuttyGen. Dieser befindet sich im Putty-Installationsverzeichnis (in Windows 10 kann beispielsweise einfach “puttygen” im Startmenü angegeben werden und das Programm wird dann angezeigt). Um ein Schlüsselpaar zu erzeugen, muss auf “Generate” geklickt werden und anschließend die Maus einige Sekunden lang bewegt werden, um Zufallswerte zu erzeugen. Dann werden die beiden Schlüssel abgespeichert. Schließlich muss der Public Key noch, wie oben im Abschnitt über Linux beschrieben, auf dem Cluster gespeichert werden.
Achtung: PuttyGen speichert Schlüssel, genau wie OpenSSH, in Form von Textdateien ab, das Format ist aber leicht anders. Wenn PuttyGen einen Schlüssel generiert hat, erscheint im Fenster der öffentliche Schlüssel im OpenSSH-Format, sodass Sie ihn nur kopieren und auf dem Cluster einfügen müssen.
WinSCP
Um Dateien auf den Cluster oder vom Cluster auf den eigenen Rechner zu kopieren, kann das auf dem Cluster installierte Programm scp
(Secure Copy) verwendet werden, siehe unten. Alternativ gibt es das Programm WinSCP. Die erweiterten Optionen von WinSCP erlauben, wie Putty, ebenfalls die Angabe eines User-Namen und eines privaten Schlüssels.
MobaXTerm
Um mit MobaXTerm eine Verbindung zum Cluster aufzubauen, muss zunächst eine neue SSH-Session erzeugt werden. Die Konfigurationsseite dieser Session ist nachfolgend abgebildet:
Unter “Remote Host” muss die Cluster-Adresse eingetragen werden. Wie bei den anderen vorgestellten Programmen können optional ein Benutzername, X11-Forwarding sowie ein bereits vorhandener Private Key konfiguriert werden. Der X-Server ist bereits in MobaXTerm enthalten, es muss also keine Zusatzsoftware installiert werden. MobaXTerm besitzt auch unter dem Menü “Tools” einen Schlüsselgenerator, der identisch wie PuttyGen funktioniert.
Dateiübertragung
Wenn Sie Dateien zum Cluster oder vom Cluster zu Ihrem eigenen Rechner übertragen möchten, können Sie dies mit der Secure-Copy-Funktion (scp
) tun. Wenn Ihr Betriebssystem den Befehl ssh
anbietet, steht in der Regel auch scp
zur Verfügung.
Die Syntax funktioniert sehr ähnlich wie beim LinuxBefehl cp
, mit dem Unterschied, dass Sie bei entfernten Systemen den Computernamen (Hostnamen) und, falls notwendig, andere SSH-Optionen wie Ihren Usernamen angeben müssen:
scp <Quelldateiname> <Zielsystemname>:<Entfernter Pfad>
Beispiel:
scp Beispielordner/Beispieldatei.txt IhrUsername@beispielhost.uni-siegen.de:/home/demo_user/
Beachten Sie, dass der Pfad der Zieldatei vom Namen des Zielsystems mit einem Doppelpunkt getrennt ist. Dieses Beispiel würde die Quelldatei an den entfernten Pfad kopieren. Wenn Sie eine Datei vom Cluster zu Ihrem PC kopieren wollen, muss die Quelldatei einen Hostnamen vor sich haben (und die weiteren SSH-Optionen). Sie können auch Dateien zwischen zwei entfernten Systemen kopieren, dann muss bei Quell- und Zieldatei ein Hostname davor sein. Wenn Sie als Ziel einen nicht existierenden Dateinamen angeben, wird die Quelldatei unter diesem Dateinamen abgespeichert. Statt eines kompletten Hostnamens können Sie auch ein SSH-Preset verwenden, wie oben im Abschnitt Konfiguration von SSH-Verbindungen beschrieben.
Im Gegensatz zu cp
zeigt scp
standardmäßig an, wenn eine Datei übertragen wird.
Es ist nicht möglich, scp
auf dem Cluster selbst auszuführen, dies hat mit den Firewall-Einstellungen der Uni zu tun. Egal in welcher Richtung Sie Dateien kopieren, Sie müssen scp
immer auf Ihrem PC ausführen. Beachten Sie außerdem, dass Sie die Option -r
angeben müssen, wenn Sie ganze Ordner mit ihrem Inhalt kopieren wollen, analog zum cp
-Befehl. Mit dem Befehl man scp
können Sie sich weitere Optionen anzeigen lassen.
Andere Optionen als scp
Außer scp
gibt es noch weitere Optionen zur Dateiübertragung. Der Befehl rsync
funktioniert ähnlich wie scp
, ist ebenfalls auf jedem Linux- und MacOS-System vorhanden und beherrscht komplexere Operationen wie beispielsweise die Wiederaufnahme von Transfers nach Verbindungsabbrüchen.
Zusätzlich gibt es mehrere grafische Clients, die die Dateiübertragung mittels verschiedener Methoden beherrschen. Beispiele sind die bereits beschriebenen Programme MobaXTerm und WinSCP (beide Windows), Filezilla (Windows, Linux), Forklift (Mac OS) sowie der eingebaute Dateibrowser von auf Gnome basierenden Linux-Systemen (z.B. Ubuntu). Hier müssen Sie die jeweilige Dokumentation konsultieren.