SSH
SSH steht für Secure Shell und bezeichnet ein Netzwerkprotokoll, mit dem man sich auf entfernten Rechnern einloggen kann, um dort Programme auszuführen. Außerdem ist es möglich, über SSH auch Dateien zu kopieren (per scp oder sftp) oder andere Protokolle zu tunneln.
SSH ist ein Ersatz für das Telnet-Protokoll, mit dem man sich ebenfalls auf anderen Rechnern einloggen kann und für FTP, das auch noch heute häufig für den Datentransfer verwendet wird. Telnet und FTP arbeiten im Gegensatz zu SSH jedoch unverschlüsselt, somit ist es einfach, die übertragenen Daten und somit auch die Passwörter von anderen Benutzern mitzulesen.
Inhaltsverzeichnis
Programme
Bei allen Unix/Linux-Systemen sind SSH-Clients vorhanden und werden meist auch schon standardmäßig mitinstalliert (Kommandos: ssh
, scp
, sftp
). Für Windows-Systeme gibt es ebenfalls einige SSH-Clients, am häufigsten wird wohl PuTTY verwendet.
Ein SFTP und SCP-Client zum Kopieren von Dateien über das Netzwerk ist ebenfalls bei PuTTY vorhanden. WinSCP ist ein weiterer SCP/SFTP-Client für Windows.
Wo nicht anders angegeben, bezieht sich die weitere Beschreibung auf die OpenSSH-Implementierung. Diese gehört in modernen Linuxdistributionen und im Fakultätsnetz zur Standardausrüstung.
SSH für den Zugriff auf das Fakultätsnetz
Per SSH könnt ihr auch bequem von zu Hause aus auf das Fakultätsnetz zugreifen und auf den Workstations oder Servern in der Uni Kommandos ausführen oder Dateien aus oder in den eigenen Bereich kopieren.
Liste der Server im CS-Netz
Achtung, die Liste hier ist nicht mehr aktuell. Insbesondere stimmt die Kern/Thread Anzahl oft nicht mehr.
Auf folgenden Rechnern des IRB können sich Studenten einloggen:
Rechnername | tubit-Account | CS-Account | Kerne | Threads | GhZ / Kern | OS |
---|---|---|---|---|---|---|
fiesta.cs.tu-berlin.de | nein | ja | 16*UltraSparc T2 | 128 | 1,4 | SunOS |
bolero.cs.tu-berlin.de | nein | ja | 8*UltraSPARC-III+ | 8 | 0,9 | SunOS |
caramba.cs.tu-berlin.de | nein | ja | SunOS | |||
cartero.cs.tu-berlin.de | nein | ja | SunOS | |||
condesa.cs.tu-berlin.de | ja | nein | SunOS | |||
bonito.cs.tu-berlin.de | ja | nein | SunOS | |||
caro.cs.tu-berlin.de | ja | nein | SunOS | |||
hombre.cs.tu-berlin.de | ja | nein | UltraSPARC-T2+ | 128 | 1,415 | SunOS |
pronto.cs.tu-berlin.de | ja | nein | UltraSPARC-T2+ | 128 | 1,415 | SunOS |
bazar.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | SunOS |
siesta.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | SunOS |
quepasa.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | |
sombrero.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | SunOS |
tienda.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | SunOS |
manana.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | SunOS |
trueno.cs.tu-berlin.de | ja | nein | UltraSPARC-T2 | 64 | 1,165 | SunOS |
kiosco.cs.tu-berlin.de | ja | nein | UltraSPARC-T2+ | 128 | 1,415 | SunOS |
furor.cs.tu-berlin.de | ja | nein | 8 * Intel Xeon E5440 | 2,003 | Ubuntu | |
cascada.cs.tu-berlin.de | ja | nein | 8 * Intel Xeon E5440 | 2,826 | Ubuntu | |
turbador.cs.tu-berlin.de | ja | nein | 8 * Intel Xeon E5440 | 2,826 | Ubuntu | |
racha.cs.tu-berlin.de | ja | nein | 16 * Intel Xeon E5440 | 2,826 | Ubuntu | |
torero.cs.tu-berlin.de | ja | nein | 16 * Intel Xeon E5440 | 2,826 | Ubuntu | |
preissler-sol.cs.tu-berlin.de | ja | nein | 4 * Intel Xeon E5440 | 2,826 | SunOS | |
wosab-sol.cs.tu-berlin.de | ja | nein | 4 * Intel Xeon E5440 | 2,826 | SunOS | |
mirador-sol.cs.tu-berlin.de | ja | nein | 4 * Intel Xeon E5440 | 2,826 | SunOS |
Desweiteren wird mit sshgate.tu-berlin.de von tubIT Zugriff auf zwei Solarisrechner angeboten. Auf diesen Systemen ist außer Vim kaum weitere Software installiert. Jedoch kann es z. B. benutzt werden, um via sshfs einfach Zugriff auf die AFS-Daten zu erhalten, ACLs zu pflegen oder auf TU-interne Dienste zuzugreifen. (z.B. ssh auf tu-rechner, etc)
Arbeiten auf den Rechnern in der Uni
Das Einloggen funktioniert vom Prinzip her so:
ssh benutzername@rechnername
oder wenn man sich mit dem Benutzernamen einloggen will, den man gerade verwendet:
ssh rechnername
Das Ergebnis ist im Allgemeneinen eine Shell auf dem angegebenen Rechner mit den Rechten des angegebenen Benutzers.
Als Rechnernamen könnt Ihr alle in der Tabelle oben angegebenen Rechner im Fakultätsnetz verwenden, Ihr müsst nur darauf achten, welche Art von Account ihr besitzt. Alle seit 2009 erstellten Accounts sind in der Regel reine tubit-Accounts.
Windows-SSH-Clients verfügen meist über eine GUI, über die ihr den gewünschten Rechner, Euren Benutzernamen und das Passwort eingeben könnt.
Wenn ihr auf einem Unix/Linux-Rechner (oder auch unter Windows, wenn Ihr einen X-Server installiert habt) arbeitet, besteht auch die Möglichkeit, grafische Programme auf Rechnern in der Uni zu starten und die Ausgabe auf den heimischen Rechner umzuleiten, dies wird als X11-Forwarding bezeichnet.
Um X11-Forwarding zu aktivieren, muss beim Aufruf der Parameter -X
mit angegeben werden. Falls es zu Problemen mit Anwendungen kommt, kann die unsichere Variante -Y
verwendet werden. Allerdings werden dadurch serverseitige Befehle, welche die Sicherheit gefährden können, nicht gefiltert. Es empfiehlt sich vor allem bei langsamen Internetzugängen (Modem, ISDN, ADSL), die Verbindung zu komprimieren (-C
):
ssh -X -C benutzer@rechnername ssh -Y -C benutzer@rechnername
Es empfiehlt sich, aus Sicherheitsgründen immer zuerst das Forwarding mittels -X zu aktivieren - da bei -Y der Zugriff von den Unirechnern auf den Heimischen X-Desktop möglich ist.
Es besteht auch die Möglichkeit, eigenes Arbeitsplatz nur als X-Terminal zum Uni-Rechnern zu nutzten. Dazu muss man auf eigenen Rechner eine X-Session nur mit Terminalfenster öffnen. Bei GDM geht das, wenn man als Session "Failsafe Terminal" wählt. Dann verbindet sich man mit X-Forwarding zum Uni-Rechner und feuert gnome-session
ab. So wird Java Desktop System erzeugt. Man soll den Terminalfenster mit gnome-session nicht schließen, bis man sich nicht ausloggen will. Es können auch andere X-Sessions gestartet werden, wenn man die entsprechende Kommandos kennt,
z.B. twm, icewm, fvwm
. Die Verbindung sollte dann allerdings etwas besser sein, da größere Datenmengen übertragen werden.
Wer keine Lust hat, bei jedem Login ein Passwort einzugeben, kann statt dessen Public-Key-Authentifizierung benutzen. Dazu erstellt man, sofern noch nicht geschehen, zu Hause einen öffentlichen und einen privaten Schlüssel für SSH, zum Beispiel mit
ssh-keygen -t rsa
und leerer Passphrase, kopiert dann die soeben erstellte Datei id_rsa.pub (nicht id_rsa - die ist geheim!) mit scp ins Homeverzeichnis im Fakultätsnetz. Verbindet euch danach per SSH dorthin und führt dort
cat id_rsa.pub >> .ssh/authorized_keys
aus. Die kopierte Datei kann danach entfernt werden. (Vorsicht: $HOME/.ssh/id_rsa* nicht löschen.)
Authentifizierung ohne Passwort auf den neuen Servern
Hinweis: Für die neuen Server mit tubit-Authentifizierung funktioniert dies leider nicht so einfach, da hier das Homeverzeichnis per AFS von tubit gemounted wird und dazu ein Kerberos-Ticket notwendig ist. Du musst Kerberos/AFS installieren, ein Ticket per kinit user@TU-BERLIN.DE
erzeugen und dann ein paar SSH-Configs setzen: ssh user@hostname -o GSSAPIAuthentication=yes -o GSSAPIDelegateCredentials=yes
. Dann sollte der Login ohne Passwortabfrage klappen.
Um diesen Sermon nicht jedesmal neu eingeben zu müssen, kann man sich eine Konfigurationsdetei für ssh anlegen, siehe dazu ach das Beispiel im folgenden Absatz.
SSH-Optionen speichern
in der Datei ~/.ssh/config kann man seine Defaults abspeichern. Hier kommt es jetzt sehr darauf an, was man machen möchte.
Wenn man auf seinem Notebook kerberos installiert hat, und mittels des kinit-Kommandos ein Kerberos Ticket geholt hat, kann man sich an den Servern per kerberos authentifiziren, die GSSAPI-Optionen werden dazu für das AFS benötigt:
Host sshgate.tu-berlin.de, sshgate Hostname sshgate.tu-berlin.de User <TUBIT-LOGIN OHNE @-Teil> ForwardAgent no ForwardX11 no PasswordAuthentication no PubKeyAuthentication no GSSAPIAuthentication yes GSSAPIDelegateCredentials yes
Durch die Verwendung von AFS ist das Anmelden mit ssh-keys auf den neuen servern nicht mehr möglich, folgende ssh-config benutzt keys für die alten Server und Passwort oder Kerberos für die neuen inklusive dem sshgate von tubit.
Host bolero.cs.tu-berlin.de fiesta.cs.tu-berlin.de bird.cs.tu-berlin.de caramba.cs.tu-berlin.de cartero.cs.tu-berlin.de bruja.cs.tu-berlin.de brujo.cs.tu-berlin.de pepita.cs.tu-berlin.de pepino.cs.tu-berlin.de condesa.cs.tu-berlin.de bonito.cs.tu-berlin.de caro.cs.tu-berlin.de PubKeyAuthentication yes PasswordAuthentication no User mutax IdentityFile ~/.ssh/keys/id_rsa3 ForwardAgent no ForwardX11 no Host sshgate.tu-berlin.de hombre.cs.tu-berlin.de pronto.cs.tu-berlin.de bazar.cs.tu-berlin.de siesta.cs.tu-berlin.de quepasa.cs.tu-berlin.de sombrero.cs.tu-berlin.de tienda.cs.tu-berlin.de manana.cs.tu-berlin.de trueno.cs.tu-berlin.de kiosco.cs.tu-berlin.de furor.cs.tu-berlin.de cascada.cs.tu-berlin.de turbador.cs.tu-berlin.de racha.cs.tu-berlin.de torero.cs.tu-berlin.de PubKeyAuthentication no User mutax ForwardAgent no ForwardX11 no PasswordAuthentication yes GSSAPIAuthentication yes GSSAPIDelegateCredentials yes
Da man den SSH-Servern nicht 100% vertrauen sollte, werden in mit Config keine ssh-agent-Anfragen an den lokalen Agenten weitergeleitet und auch kein X-Forwarding erlaubt. Das kann man auf der Kommandozeile im konkreten Fall alles überschreiben, aber die Defaults sollen 'sicher' sein.
Kopieren von Dateien
Mit Hilfe von scp oder sftp könnt Ihr auch Dateien von der Uni nach Hause kopieren oder umgekehrt. Für Windows und auch Unix/Linux gibt es dafür grafische Programme, die ähnlich wie gewöhnliche FTP-Clients aussehen und funktionieren. Viele FTP-Programme beherrschen mittlerweile auch SFTP, darunter auch FileZilla, gFTP etc.
GNOME und KDE bieten außerdem die Möglichkeit, direkt auf SSH-Accounts mittels der Dateiverwaltung (Nautilus/Konqueror) zuzugreifen. Der URL dazu lautet: sftp://BENUTZERNAME@user.cs.tu-berlin.de:22/~
.
Mit Hilfe von FUSE kann man die Daten eines anderen Rechners auch per ssh/sftp mounten, das heißt ins lokale Dateisystem einhängen.
Auf der Konsole unter Unix/Linux funktioniert das Kopieren von Dateien so (Kopieren von entferntem auf lokalen Rechner):
scp benutzername@rechnername:Quelle Ziel
oder umgekehrt (von lokalem Rechner auf entfernten):
scp Quelle benutzername@rechnername:Ziel
Es gilt im Wesentlichen die Semantik von cp
.
Natürlich ist es auch möglich mehrere Dateien oder ganze Verzeichnisse einschließlich Unterverzeichnissen (rekursiv) oder Dateien zwischen verschiedenen entfernten Rechnern zu kopieren. Weitere Informationen dazu erhält man über die Manpage zu scp (man scp
).
Tunnel mit SSH
SSH kann auch allgemein eine Verbindung zu einem entfernten Rechner herstellen und als Tunnel agieren, also Daten zwischen eigenem und entferntem Rechner transportieren. Dazu zwei Beispiele.
Zugriff auf news.cs.tu-berlin.de
von zu Hause
Der Newsserver erlaubt den Schreibzugriff nur für Rechner im Fakultätsnetz. Mit einem Tunnel kann man das simulieren:
ssh -L localhost:20119:news.cs.tu-berlin.de:119 -l foo -T fiesta.cs.tu-berlin.de
Dabei ist 20119 die Portnummer auf dem eigenen Rechner, zu der die Verbindung weitergeleitet wird, fiesta.cs.tu-berlin.de
der Rechner, von dem aus sie hergestellt wird und foo der eigene Benutzername im Fakultätsnetz.
Seit dem 30.12.2005 gibt es den Rechner "news.cs.tu-berlin.de" nicht mehr (abgeschaltet). Die TU verweist auf den Newsserver des DFN "News.CIS.DFN.DE" Nutzerordnung unter: http://news.cis.dfn.de/dnn/
Zugriff auf mailhost.cs.tu-berlin.de
von zu Hause
Dies wird in einem eigenen Artikel beschrieben: Email
Zugriff auf Webseiten mit IP-Adressen-Zugriffsbeschränkung
Dank der Unibibliothek kann man von Unirechnern aus Inhalte aus dem WWW abrufen, an die man sonst nicht so leicht herankommt. Für Informatiker und/oder E-Techniker ist zum Beispiel der Zugriff auf die IEEE-Normen interessant; weitere Information gibt es auf der Homepage der Bibliothek. Um darauf von zu Hause zuzugreifen, richtet man zum Beispiel mit
ssh -L localhost:28080:www.cs.tu-berlin.de:81 -l foo -T fiesta.cs.tu-berlin.de
einen Tunnel zwischen dem Proxyserver im Fakultätsnetz (siehe http://irb.cs.tu-berlin.de/dienste/www/proxy.html für Portnummern) und Port 28080 auf dem eigenen Rechner über fiesta.cs.tu-berlin.de ein und stellt im Lieblingsbrowser localhost
und Port 28080 als Proxyserver ein. foo ist dabei wieder der Benutzername.
SSH als SOCKS-Proxy
Seit einiger Zeit ist der ssh-Client auch in der Lage, als socks-Proxy zu fungieren.
Dazu starte man ihn mit der Option -D8080 und gebe als SOCKS-Proxy localhost und port 8080 an. Die Felder zu HTTP/FTP-Proxy in der Konfiguration des Lieblingsbrowsers bleiben dabei leer:
ssh -D 8080 login@bolero.cs.tu-berlin.de
Ein Nachteil von SSH-Tunnels ist, dass sie im Vergleich zu direkten Verbindungen einen Ressourcenoverhead hinzufügen. Deshalb sollten sie genau dann benutzt werden, wenn die zusätzliche Funktionalität tatsächlich benötigt wird.
Weblinks
- http://www.openssh.com/
- http://www.ssh.com/
- http://www.chiark.greenend.org.uk/~sgtatham/putty/
- http://www.cygwin.com/ - Eine Sammlung auf Windows portierter Unix-typischer freier Software, inklusive X-Server und ssh.