In diesem Guide werdet ihr lernen, wie ihr SSH auf euer Maschiene einrichtet, so dass ihr euch auf die Rechnerhalle verbinden könnt.
Damit du die Rechnerhalle verwenden kannst, brauchst du einen RBG- / ITO-Account. Zu beginn des ersten Semesters habt solltest du eine Email bekommen, in dem ein Link ist, mit dem du einen RBG- / ITO-Account erstellen kann. Bei Fragen und Unklarheiten kann man im offizielles ITO-Wiki nachschalgen.
In diesem Abschnitt wird erklärt, wie man ssh
installiert.
Aus Erfahrung würde ich allen Windows-Nutzern empfehlen ssh
über WSL (Windows Subsystem for Linux) zu nutzen. Man kann ssh
auch über Windows nativ benutzen, die Einrichtung ist meiner Meinung nacher aber komplizierter und in der Vergangheit hab ich immer wieder Probleme bei Windows gesehen.
Offizielle Microsoft Dokumentation.
Zuerst muss WSL für Windows aktiviert werden. Dafür musst du die Windows Powershell oder Windows-CMD öffnen und folgenden Befehl ausführen.
# In Windows Powershell
> wsl --install -d ubuntu
Sobald sich eine neue Shell mit Linux öffnet, kannst du weiter dem Linux Guide folgen um ssh
zu installieren.
Auf den neueren macOS-Versionen sollte ssh
schon installiert sein. Um zu prüfen ob ssh
richtig funktioniert, musst du den Terminal öffnen und den folgenden Command ausführen.
> ssh
Wenn ssh
installiert ist, solltest du eine usage-Message bekommen wie sie weiter unten zu sehen ist.
ssh
ist auf den meißten Linux-Distros (auf WSL auch) schon standartmäßig installiert. Sollte das nicht so sein kannst du den folgenden Schritten folgen um openssh-client
für dein Distro zu installieren.
> sudo apt update # updates the mirrors
> sudo apt openssh-client # install the ssh-client
> sudo pacman -Syu # updates the mirrors
> sudo pacman -S openssh-client # install the ssh-client
> ssh
Falls ssh
korrekt installiert wurde solltest du eine usage-Message bekommen.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address]
[-c cipher_spec] [-D [bind_address:]port] [-E log_file]
[-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file]
[-J destination] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-P tag] [-p port] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command [argument ...]]
ssh [-Q query_option]
Ist jetzt ssh
erfolgreich installiert kannst du mit dem folgenden Befehl auf die Rechnerhalle verbinden.
Allerdins musst du hierbei immer noch euer Passwort eingeben.
> ssh <ito-username>@lxhalle.in.tum.de
# Example:
> ssh muster@lxhalle.in.tum.de
exit
-Befehl ausführen> exit
Wie du warscheinlich schon bemerkt hast, muss du jedes mal dein Passwort eingeben, wenn du versuchst dich, per ssh
auf die Rechnerhalle zu verbinden.
Das kann irgendwann nervig werden, vorallem wenn man mehrere Verbindungen zu dem Server gleichzeitig hat.
Hierfür gibt ein eine praktische Lösung. Man kann sich ein SSH-Key-Paar erstellen, wovon man den Öffentlichen Schlüssel an die Rechnerhalle schickt.
Verbindest du dich nun auf die Rechnerhalle wird jedes mal dein lokaler, geheimer Schlüssel mit dem öffentlichen Schlüssel auf der Rechnerhalle abgeglichen.
Wenn alles stimmt kannst du dich sofort verbinden, ohne dein Passwort eingeben zu müssen.
Falls du mehr dazu lesen willst is hier ein iformativer Link.
Hinweise: Alle folgenden Befehle müssen auf eurem eigenen Computer ausgeführt werden, NICHT auf der Rechnerhalle. Ihr könnt die rechneralle mit
exit
verlassen
1. SSH-Schlüssel-Paar erstellen
> ssh-keygen -t ed25519
2. Dateinamen unverändern lassen (<Enter>
drücken)
Generating public/private ed25519 key pair.
Enter file in which to save the key (path/to/home/.ssh/id_ed25519): # <Enter>
3. Kein Passwort eingeben
Im nächsten Schritt werdet ihr nach einen Passwort gefragt. Hier müsst ihr kein Passwort eingeben sondern einfach nur <Enter>
. Solltet ihr doch ein Passwort eingeben müsst ihr dieses Passwort eingeben, jedes mal wenn ihr den SSH-Schlüssel verwendet.
# Hier kein Passwort eingeben, nur <Enter> drücken
Enter passphrase (empty for no passphrase): # <Enter>
Enter same passphrase again: # <Enter>
4. Geheimer und Öffnetlicher Schlüssel
Falls ihr den Schritten korrekt gefolgt seid, solltet ihr in ~/.ssh
zwei neue Dateien finden.
> ls -l ~/.ssh
-rw------- 1 user user 411 13. Jan 13:05 id_ed25519 # geheimer Schlüssel
-rw-r--r-- 1 user user 102 13. Jan 13:05 id_ed25519.pub # öffentlicher Schlüssel
> ssh-copy-id -i ~/.ssh/id_ed25519.pub <ito-username>@lxhalle.in.tum.de
# Example: ssh-copy-id -i ~/.ssh/id_ed25519.pub muster@lxhalle.in.tum.de
Falls allen Schritten erfolgreich gefolgt wurden, kannst du jetzt mit dem selben Befehl wie vorher auf die Rechnerhalle zu greifen. Jetzt aber ohne ein Passwort einzugeben.
> ssh <ito-username>@lxhalle.in.tum.de
# Example: ssh muster@lxhalle.in.tum.de
Anstelle jedes mal ssh muster@lxhalle.in.tum.de
eingeben müssen, kannst du auch eine SSH-Config-Datei erstellen. In der SSH-Config kannst du Konfigurationen für verschiedene SSH-Server speichern.
> ssh rechnerhalle # (die coole Art)
# anstelle
> ssh muster@lxhalle.in.tum.de # (die nicht so coole Art)
Zuerst musst du auf deinem Laptop (nicht Rechnerhalle!) eine Datei, namens config
in dem ~/.ssh
Directory, erstellen.
Der folgende Befehl erstellt diese Datei.
> touch ~/.ssh/config # erstellt einen file namen config im ~/.ssh Ordner
Nun musst du die neu, erstellte Datei öffnen und editieren. Mit dem folgenden Befehl könnt ihr die Datei in dem nano
-Editor öffnen.
> nano ~/.ssh/config
Sobald die Datei geöffnet ist, kannst du anfangen in der (noch leeren) Datei mit den Pfeiltasten rumnavigieren und anfange die Config zu beschreiben.
# in der ~/.ssh/config Datei
Host custom-name-für-den-server
HostName lxhalle.in.tum.de
User dein-ito-username
# Beispiel
Host rechnerhalle
HostName lxhalle.in.tum.de
User muster
Um das geschriebene in nano
zu speichern, musst du strg+x
drücken.
Von da aus, musst du den Anweisungen des Editors folgen um die Datei zu speichern
Wenn du jetzt alles funktioniert hat, kannst du deine neue SSH-Config ausprobieren
> ssh custom-name-für-den-server
Manche Windows-Nutzer bekommen den folgenden Fehler, wenn sie versuchen SSH verwenden.
ssh_dispatch_run_fatal: Connection to 131.159.76.9 port 22: message authentication code incorrect
Um das Problem zu beheben, brauchst du erst mal eine SSH Config.
Sobald du eine SSH-Config hast kannst du die folgende Zeile in deine rechnerhallen
-Konfiguration einfügen.
Host custom-name-für-den-server
HostName lxhalle.in.tum.de
MACs hmac-sha2-512 # Der Fix
User ito-username
Danke an Danial Arbabi (cooler GRA Tutor) dafür.