Wissen, was gut ist. Studieren in Chemnitz.

SSH im URZ der TU Chemnitz

Secure Shell ist der vom URZ favorisierte Mechanismus zum Remote Login, Remote Copy und Remote Execution beim Zugang zu Unix/Linux-Systemen im Netz.

Software

Die Software gehört bei Unix/Linux-Systemen i.d.R. zum Standardumfang.

Für Windows-Systeme ist PuTTY als SSH-Client und WinSCP zum Übertragen von Dateien zu empfehlen:

PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
WinSCP: http://winscp.net/eng/docs/lang:de

Informationen

Secure Shell (SSH) - Gesicherte Kommunikation über unsichere Netze
Manuals der OpenSSH-Implementation

SSH, Kerberos und AFS

Die Installation und Konfiguration von OpenSSH auf den vom URZ betreuten Maschinen erfolgt so, dass ein Single-Sign-On-Verfahren realisiert wird. Die Abläufe dabei sind folgende:

  1. Beim Login unter Linux an einer Maschine in einem der Pools oder an einem Arbeitsplatz geben Sie Ihr Loginkennzeichen und Ihr Passwort ein.
  2. Daraufhin erhalten Sie ein sog. Kerberos Ticket Granting Ticket (TGT) und Ihr AFS-Token. Das TGT beweist anderen Rechnern und Diensten Ihre Identität - ohne dass Sie erneut Ihr Passwort eingeben müssen. Das TGT wird in einem Ticket Cache gespeichert. Diesen können Sie mit dem Kommando klist anschauen.
  3. Beim Aufruf von ssh wird dieses TGT benutzt, um dem Zielrechner Ihre Identität zu bestätigen. Außerdem wird es an den Zielrechner übertragen (forward) und am Zielrechner ebenfalls im Ticket Cache gespeichert.
  4. Am Zielrechner wird ausgehend vom TGT ein AFS-Token erzeugt und dem AFS Cache Manager übergeben, so dass Sie am Zielrechner auf Ihre Dateien zugreifen können.

Dieses Verfahren funktioniert nur in der Protokoll-Version SSH2. Deshalb ist der SSH-Client auf den vom URZ verwalteten Maschinen so eingestellt, dass immer zuerst die Protokoll-Version SSH2 versucht und nur dann auf SSH1 umgeschaltet wird, wenn der SSH-Server am Zielrechner das Protokoll SSH2 nicht beherrscht. Die entsprechende Einstellung wird durch die Angabe der Zeile

Protocol 2,1
in /etc/ssh/ssh_config gesteuert und kann von jedem Nutzer in $HOME/.ssh/config überschrieben werden.

Das oben beschriebene Verfahren funktioniert mit OpenSSH ab der Version 4.3p2 in Kombination mit MIT-KerberosV ab Version 1.3.4 und dem PAM-Modul pam_krb5 ab Version 2.2.2.

Wenn Sie sich bereits auf einer selbst administrierten Maschine ein TGT beschaffen möchten, um sich damit ohne Passwort-Eingabe per ssh an Maschinen des URZ anmelden zu können, übernehmen Sie bitte die entsprechenden Einstellungen der Konfigurationsdateien:

  • /etc/krb5.conf
    Übernehmen Sie einfach das File von einer beliebigen Maschine des URZ.
  • /etc/ssh/ssh_config
    GSSAPIDelegateCredentials yes

Umgang mit SSH Host Keys und Fingerprints

SSH enthält mehrere Sicherheitsmechanismen. Die verschlüsselte Datenübertragung ist nicht das einzige Verfahren, welches die sichere Kommunikation gewährleistet. Obwohl bereits Kerberos die Identität des Zielrechners sichert (jeder Rechner des URZ besitzt eine entsprechende Kerberos-Identität), kann SSH Key-Paare verschiedener Public-Key-Verfahren einsetzen, um die Kommunikation abzusichern.

Dazu sichert SSH mit sog. Host-Fingerprints, dass man mit dem Zielrechner kommuniziert, mit dem man kommunizieren will. Damit dieses Verfahren korrekt funktioniert, muss man die Fingerprint-Informationen manuell vergleichen.

Wenn man einen Zielrechner zum ersten Mal per SSH kontaktiert, wird man aufgefordert, den zum Zielrechner gehörenden Host-Fingerprint zu verifizieren. Die unten angegebene Tabelle enthält die Fingerprints für die Rechner des URZ, die aus dem Internet per SSH erreichbar sind.

Die beiden von OpenSSH unterstützten Protokolle verwenden verschiedene Host-Fingerprints. Im SSH1 beziehen sie sich auf ein Schlüsselpaar des RSA-Verfahrens und im SSH2 auf ein weiteres Schlüsselpaar des RSA-Verfahrens sowie auf ein Schlüsselpaar des DSA-Verfahrens.

Hostname/Alias IP-Adresse Protokoll Host-Fingerprint letzte Änderung am
gate.hrz.tu-chemnitz.de
way.hrz.tu-chemnitz.de
login.tu-chemnitz.de
134.109.134.3
134.109.134.4
134.109.226.5
SSH1 9a:e4:fa:7c:8f:ef:cd:8a:21:b6:55:85:cd:22:22:51 21.11.2000
SSH-RSA 5c:e0:54:cb:3e:64:f1:e5:7e:d6:d3:71:df:1f:7b:15 14.11.2006
SSH-DSS f7:c4:97:90:9d:5a:b1:59:85:a0:bb:83:5e:ea:32:c4 03.08.2001

Hinweise

  • Das oben beschriebene Verfahren zum ssh-Login auf Basis des Kerberos-TGT funktioniert nicht für Alias-Namen (login.tu-chemnitz.de). Wenn Sie es nutzen möchten, müssen Sie den Namen des Hosts (gate.hrz.tu-chemnitz.de oder way.hrz.tu-chemnitz.de) explizit angeben.
  • Das Verfahren zum Verifizieren der Korrektheit der Host-Fingerprints wird durch die folgende Option in den Konfigurationsfiles des SSH-Clients (üblicherweise $HOME/.ssh/config, /etc/ssh/ssh_config) gesteuert:
          StrictHostKeyChecking   no|yes|ask
       
  • Auf den vom URZ verwalteten Maschinen findet man im File /etc/ssh/ssh_known_hosts eine Sammlung der Public-Host-Keys zahlreicher Maschinen aus dem Campusnetz. Der Inhalt dieses File wird automatisch gepflegt und regelmäßig auf alle vom URZ verwalteten Maschinen verteilt. Wenn man dieses File in das eigene System überträgt, übernimmt man diese Public-Keys und kann damit das Verifizieren des Host-Fingerprints umgehen, ohne dabei den zugrunde liegenden Sicherheitsmechanismus des SSH-Protokolls auszuschalten.