SSH-Gateway

Alternativ zum VPN-Zugang stellt das URZ ein SSH-Gateway bereit, um auf universitätsinterne Ressourcen über das SSH-Protokoll zuzugreifen. Das Gateway dient ausschließlich dem Aufbau eines SSH-Tunnels von einem universitätsexternen Client zu einem universitätsinternen System.

Der Fingerprint des Public Keys unseres Servers lautet SHA256:1b0s7qTEHnJVPeSYCokxWEhQmZscUPYGlxMRRum1wHA

Wenn Ihr Client-System DNSSec unterstützt, können Sie in Ihrer lokalen SSH-Konfiguration (~/.ssh/config) den Parameter

VerifyHostKeyDNS yes

setzen. Auf diese Weise wird der SSH-Hostkey-Fingerprint vom SSH-Client automatisch mit unserem DNS abgeglichen.

Login am SSH-Gateway

Das Login am SSH-Gateway ist grundsätzlich mit Nutzername/Kennwort (zentrale Zugangsdaten des URZ) möglich. Für automatisierte Logins bieten wir auch die Möglichkeit der Public-Key-Methode an. Da die Homeverzeichnisse regelmäßig geleert werden, ist die Hinterlegung Ihres SSH-Public-Keys im Homeverzeichnis nicht sinnvoll.

Aus diesem Grund können Sie Ihren SSH-Public-Key im Domain Name System (DNS) hinterlegen lassen. Wenn Sie diese Option nutzen möchten, teilen Sie uns Ihren SSH-Public-Key bitte über ein Ticket im Ticketsystem der Groupware mit.

Aufbau eines SSH-Tunnels

Sie können sich zwar direkt auf dem SSH-Gateway einloggen und sich von dort aus weiter auf dem Zielsystem einloggen, aber dieses Vorgehen hat zwei Nachteile

  1. Wenn das Zielsystem eine Public-Key-Authentifikation erfordert, ist dieses Vorgehen nicht möglich.
  2. Wenn Sie Dateien übertragen wollen, müssen Sie die Daten in zwei Schritten kopieren und es gibt die lokale Dateisystemlimits auf dem SSH-Gateway.

Daher empfiehlt es sich, einen SSH-Tunnel zu verwenden.

Tunnel über die Kommandozeile

Über folgendes Kommando wird ein SSH-Tunnel über das SSH-Gateway auf das Zielsystem aufgebaut. Der hier verwendete Port 2000 ist nur ein Beispiel.

$ ssh -o VerifyHostKeyDNS=yes URZ-BENUTZERNAME@ssh-gateway.uni-greifswald.de -C -L 2000:FQDN-ZIELSYSTEM:22

Nachdem der Tunnel steht, können Sie sich direkt am ZIELSYSTEM einloggen.

Da auf diese Weise mehrere SSH-Hostschlüssel auf die lokale IP-Adresse 127.0.0.1 verweisen, ist die Verwendung von Aliasnamen anzuraten.

$ ssh -p 2000 -o VerifyHostKeyDNS=yes -o HostKeyAlias="ALIASNAME" BENUTZERNAME_IM_ZIELSYSTEM@127.0.0.1

Tunnel per Konfigurationsdatei

In der Datei ~/.ssh/config im Homeverzeichnis des Nutzers kann eine Konfiguration für das Gateway und alle Server, auf die man sich über das Gateway verbinden möchte, angelegt werden.

VerifyHostKeyDNS yes

Host ssh-gateway
User URZ-BENUTZERNAME
Hostname ssh-gateway.uni-greifswald.de

Host ALIASNAME
ProxyCommand ssh -W %h:%p ssh-gateway
User BENUTZERNAME_IM_ZIELSYSTEM
Hostname FQDN-ZIELSYSTEM

Nun kann die SSH-Verbindung über den vergebenen Aliasnamen aufgebaut werden. Dabei wird man einmal nach dem Kennwort für die URZ-Nutzerkennung gefragt, um sich mit dem SSH-Gateway zu verbinden (wenn nicht die SSH-Public-Key-Methode verwendet wird). Danach wird das Kennwort des Nutzers auf dem Zielsystem abgefragt, sofern keine Public-Key-Authentifizierung aktiviert ist.

$ ssh ALIASNAME