Dies ist eine alte Version des Dokuments!


Um die Sicherheit zu erhöhen, werden seit dem 20.3.2014 nur noch SSH Schlüssel für den Login erlaubt.

SSH

SSH (Secure Shell) ist ein Protokoll, das ähnlich Telnet das Öffnen einer Kommandozeile auf einem entfernten Rechner erlaubt. SSH arbeitet sowohl beim Verbindungsaufbau als auch beim eigentlichen Datenaustausch verschlüsselt. Auf dem Zielrechner läuft ein SSH-Server, auf dem eigenen Rechner ein SSH-Client. Bei Unix-Betriebssystemen wie Solaris und Linux gehört SSH im Prinzip zur Standardausstattung. Für Windows bietet sich z.B. Cygwin an (Anleitung). Als Windows-Client hat sich außerdem PuTTY bewährt. Es gibt allerdings auch gute Alternativen.

Für Putty gibt es noch eine USB-Stick Variation, die die Konfigurationsdateien nicht mehr in der Registry ablegt, sondern in einzelnen Dateien.

SSH kann aber noch mehr. Nicht nur die entfernte Kommandozeile kann lokal angezeigt und bedient werden, sondern auch grafische Applikationen (X-Forwarding). Außerdem können lokale und entfernte TCP-Ports weitergeleitet werden (Portforwarding) sowie Dateien kopiert werden (über Secure Copy, kurz SCP, oder FTP über SSH, kurz SFTP).

Grafische Programme

Startet man eine SSH-Verbindung mit dem Parameter -X (oder aktiviert man in PuTTY X11 forwarding, in aktuellen Versionen zu finden unter Connection/SSH/Tunnels), werden X-Applikationen, die man über die SSH-getunnelte Kommandozeile startet, auf dem lokalen X-Server angezeigt. Dazu muss natürlich ein X-Server laufen - unter Unix/Linux kein Problem. Unter Windows gibt es mehrere Möglichkeiten, kostenlos z.B. mit Xming oder Cygwin/X. Portforwarding

Beispiele und weitere Tipps

Zum Thema SSH-Tunnel hat Thomas Binder bereits eine ausführliche Anleitung geschrieben, die auch die Erzeugung und Benutzung von RSA-Schlüsseln als Ersatz für die Passwort-Authentifizierung beinhaltet.

In PuTTY findet sich der Dialog zur Einstellung von Portforwarding in aktuellen Versionen unter Connection/SSH/Tunnels. Dazu macht man folgenden Einstellungen:

Das entspricht einem Portforwarding vom lokalen Port 8080 auf Port 80 auf dem www.informatik.tu-darmstadt.de vom entfernten Rechner aus. Gibt man nun im Browser localhost:8080www.informatik.tu-darmstadt.de ein, landet man quasi auf - aber so, als ob man von dem Rechner gekommen wäre, zu dem man die SSH-Verbindung aufgebaut hat. Das Portforwarding funktioniert natürlich nur so lange, wie die SSH-Verbindung steht. Secure Copy (SCP)

SCP erlaubt das verschlüsselte Kopieren von Dateien, wenn auf dem Zielrechner ein SSH-Server installiert ist. Das ist z.B. auf den Rechnern clientssh1 und clientssh2 der RBG/ISP der Fall. So kann man z.B. Dateien von daheim abrufen oder auf einen der Rechner in der Uni transferieren.

  • Ein paar Beispiele:
Befehl Bedeutung
scp vortrag.pdf user@clientssh1: kopiert vortrag.pdf (lokal) in das Home-Verzeichnis von Benutzer user (Uni)
scp vortrag.pdf user@clientssh1:/media/tmp/user kopiert vortrag.pdf (lokal) in das temporäre Verzeichnis von Benutzer user(Uni). Dieses muss existieren, sonst wird vortrag.pdf in user umbenannt (Uni)
scp user@clientssh1:uebung2.pdf /tmp kopiert uebung2.pdf vom Home-Verzeichnis des Benutzers user (Uni) nach /tmp (lokal)
scp user1@clientssh1:info.txt user2@clientssh1: kopiert info.txt aus dem Home-Verzeichnis von Benutzer user1 (Uni) in das Home-Verzeichnis von Benutzer user2 (Uni)

In jedem Fall muss natürlich das Passwort der angegebenen Benutzer auf Anfrage eingegeben werden. Anstelle von clientssh1 kann auch clientssh2 benutzt werden. SFTP und FTPS

SFTP entspricht FTP über SSH. Auch diese Variante wird unterstützt. Clients sind etwa WinSCP oder gFTP (s.u.). Zu beachten ist hierbei, dass ggf. Einträge in der .bashrc und ähnlicher Dateien (z.B. .profile) dazu führen können, dass der Verbindungsaufbau fehl schlägt. Konkret können das Ausgaben mit echo oder eine andere Shell sein.

FTPS dagegen bedeutet FTP über SSL bzw. TLS. Diese Zugriffsart wird nicht unterstützt. Programme

Unter UNIX/Linux sind meist direkt die Kommandozeilenprogramme ssh für den Verbindungsaufbau (ggf. mit Portforwarding, siehe Anleitung zu SSH-Tunnels) und scp für den Dateitransfer installiert. Als grafische Alternative bietet sich gFTP (mit OpenSSL-Bindings) an; KDE-Programme wie Krusader können zudem die KIO-Slaves fish für SCP- und sftp für SFTP-Zugriffe (fish:user@host und sftp:user@host) nutzen.

Unter Windows bietet das PuTTY-Komplettpaket äquivalente Kommandozeilenprogramme für den Dateitransfer wie pscp. Wesentlich komfortabler ist allerdings das Arbeiten mit WinSCP, einer grafischen Anwendung, die neben SCP auch SFTP (nicht jedoch FTP!) unterstützt.

SSH Server der RBG/ISP

Derzeit sind drei SSH Login Rechner der RBG/ISP aktiv:

  • clientssh1.rbg.informatik.tu-darmstadt.de - Vmware
  • clientssh2.rbg.informatik.tu-darmstadt.de - Vmware
  • clientssh3.rbg.informatik.tu-darmstadt.de - ProxMox

Nach dreimaligem falschen Login, wird die jeweilige IP Adresse für 5 Minuten gesperrt.

SSH Schlüssellänge

Maßgeblich für die Sicherheit des SSH Schlüssel, ist die Länge die in Bit angegeben wird. In der Standardeinstellung ist die Länge 1024Bit, welches nicht mehr unbedingt sicher ist. Daher sollten 2048Bit bzw. 4096Bit den Vorzug gegeben werden.

Die Länge lässt sich mittels ssh-keygen prüfen:

  • Für RSA Schlüssel
~$ ssh-keygen -l -f ~/.ssh/id_rsa

Die Zahl am Anfang zeigt die Länge des Schlüssels

SSH Schlüssel erzeugen

Um SSH Schlüssel auf der Linux-Shell zu erzeugen:

  • Für RSA
~$ ssh-keygen -b 4096 -t rsa
  • Für ECDSA
~$ ssh-keygen -b 384 -t ecdsa
  • Für ED25519
~$ ssh-keygen -t ed25519

Der DSA Algorithmus sollte nicht mehr verwendet werden, da seine Schlüssellänge auf 1024Bit begrenzt ist.

SSH Hilfe

Weitere Informationen zu SSH Schlüsseln, findet sich auf dieser Seite.

SSH Hilfe für Putty

Um von Windows aus auf die Clientssh Rechner zu gelangen, kann z.B. Putty verwendet werden.

Auch mittels Putty ist es möglich sich einen SSH Schlüssel zu erstellen, der dann im Heimatverzeichnis abgelegt werden kann. Eine Ausgezeichnete Anleitung findet sich dafür hier oder hier.

Für Weitere Informationen ist eine Google Suche sicherlich sehr aufschlussreich.

SSH Fingerprints

Wer den Schlüssel unseres SSH Servers überprüfen möchte, kann dies mithilfe der Fingerprints. Diese lauten:

  • RSA
4096 f7:12:d3:66:61:d0:49:22:9e:c1:cf:e3:d5:a9:07:db
  • DSA
1024 ea:00:04:5d:69:0d:d7:9e:72:a5:87:30:85:f1:8f:35 
  • ECDSA (wird von SSH bevorzugt)
384 8f:25:08:5d:b2:18:7f:2c:de:1d:f7:5b:9a:2e:a8:0e
  • ED25519
256 8e:91:96:0e:08:83:22:ed:d5:c3:c3:51:93:eb:b8:b0

SSH Schlüssel bereitstellen / hochladen

Um den öffentlichen Schlüssel zu hinterlegen, gibt es zwei Möglichkeiten:

  • Am Poolrechner nach ~/.ssh/authorized_keys kopieren
  • Über das Webfrontent von Support den Schlüssel hochladen. Es dauert dann ein paar Minuten, bis der Schlüssel im Heimatverzeichnis hinterlegt wurde.

Andere Sprachen
Übersetzungen dieser Seite: