SSH-Zugang ins PSI
hop.psi.ch
) erlaubt.
PSI-Mitarbeiter mit einem Account können das Sprungsystem standardmässig nutzen. Nicht-PSI-Mitarbeiter müssen über ihre verantwortliche Kontaktperson einen Account für externe Mitarbeiter beantragen.
SSH mit Unix
Variante 1
Für jede gewünschte SSH-Verbindung ins PSI-LAN erfolgt zuerst eine SSH-Verbindung auf
hop.psi.ch
. Von dort wird eine neue SSH-Verbindung zum Zielsystem im PSI-LAN aufgebaut.
Beispiel Verbindungsaufbau:
Bitte ersetzen sie
<user>
mit ihrem tatsächlichen Benutzernamen
SSH auf hop.psi.ch
$ ssh <user>@hop.psi.ch $ <user>@hop.psi.ch's password:und weiter zum System im PSI-LAN
$ ssh <user>@sshserver.psi.ch $ <user>@sshserver.psi.ch's password:Alternatives Kommando:
$ ssh -t <user>@hop.psi.ch ssh -t <user>@sshserver.psi.ch <user>@hop.psi.ch's password: <user>@sshserver.psi.ch's password: [<user>@sshserver ~]$
Variante 2
Wer oftmals mehrere SSH-Verbindungen zu unterschiedlichen Systemen im PSI-LAN aufbauen möchte, ist mit dieser Variante flexibler.
Sämtliche SSH-Verbindungen ins PSI-LAN erfolgen über einen SSH-Tunnel zu
hop.psi.ch
. Hierfür müssen auf dem Clientsystem Anpassungen vorgenommen werden.
Erstmals muss die ~/.ssh/config Datei bereits mit Octal 600 Berechtigungen existieren.
mkdir ~/.ssh/tmp touch ~/.ssh/config chmod 600 ~/.ssh/config
SSH-Client-Konfigurations-Datei anpassen:
ControlMaster auto ControlPath /home/<user>/.ssh/tmp/%h_%p_%r Protocol 2 # The following can also be specified in the host-based sections below. ForwardX11 yes ForwardX11Trusted yes ForwardAgent yes host hop hop.psi.ch hostname hop.psi.ch user <PSI-user> host sshsrv1-psi-internal hostname sshserver1.psi.ch user <user> ProxyCommand ssh -A -W %h:%p hop.psi.ch host sshsrv2-psi-internal hostname sshserver2.psi.ch user <user> ProxyCommand ssh -A -W %h:%p hop.psi.ch host sshsrv3-psi-internal hostname sshserver3.psi.ch user <user> ProxyCommand ssh -A -W %h:%p hop.psi.chDer Verbindungsaufbau zu den internen Systemen erfolgt in zwei Schritten.
Schritt Nr. 1, SSH auf hop.psi.ch
$ ssh <user>@hop.psi.ch $ <user>@hop.psi.ch's password:Diese Verbindung baut den Tunnel zu
hop.psi.ch
auf und muss für die Dauer der Verbindungen zu den Systemen im PSI-LAN unbedingt bestehen bleiben!Schritt Nr. 2, SSH zu den SSH-Servern im PSI-LAN
$ ssh sshsrv1-psi-internal $ <user>@sshserver1.psi.ch's password: $ ssh sshsrv2-psi-internal $ <user>@sshserver2.psi.ch's password: $ ssh sshsrv2-psi-internal $ <user>@sshserver3.psi.ch's password:Alle drei Verbindungen werden durch den Tunnel zu
hop.psi.ch
gesendet, und von dort weiter zu den Zielsystemen.SSH mit Windows und PuTTY
hop.psi.ch
aufgebaut werden. Mit PuTTy lässt sich das mit wenig Aufwand umsetzen.
Beispiel: SSH Login auf llc.psi.ch
Zunächst trägt man in das Feld
Host Name (or IP address)
den Namen des Sprungsystems hop.psi.ch
ein. Im Feld Saved Sessions
trägt man den Namen der Verbindungsbeschreibung ein. In diesem Fall llc.psi.ch via hop.psi.ch
.
Anschliessend wird in der linke Spalte die
Category SSH
angewählt. Dann trägt man in das Feld Remote command
das Kommando ssh llc.psi.ch
ein.
Dann springt man zurück zur
Category Session
und speichert die Einstellungen mit einem klick auf save
ab.
Die Verbindung wird mit einem klick auf
Open
aufgebaut. Bitte ersetzen Sie <user>
mit ihrem tatsächlichen Benutzernamen. Das Benutzerpasswort wird zweimal abgefragt. Einmal für das Login auf hop.psi.ch
…
und gleich im Anschluss für das Login auf
llc.psi.ch
Nach der erfolgreichen Passworteingabe für llc.psi.ch
, haben Sie Zugriff auf das System.
Bei der Abmeldung von
llc.psi.ch
werden beide Verbindungen (zu hop.psi.ch
und llc.psi.ch
) beendet.
Tunneling
hop.psi.ch
genutzt werden. Hierbei ist zu beachten, dass nicht allen Benutzern des Sprungsystems die gleichen Möglichkeiten zur Verfügung stehen. Anhand der Art des Benutzeraccounts sind unterschiedliche Verbindungen über das Sprungsystem möglich.
PSI-Mitarbeiter
PSI-Mitarbeiter können über
hop.psi.ch
die folgenden TCP-Verbindung ins PSI LAN tunneln:
TCP Port Nummer | wird genutzt von |
---|---|
22 | SSH |
80/443 | HTTP(S) |
445 | Windows File Server (z. B. fs00, fs01 or fs02) |
>1023 | bspw. für RDP, VNC etc. |
Externe Mitarbeiter können über
hop.psi.ch
die folgenden TCP-Verbindung ins PSI LAN tunneln:
TCP Port Nummer | wird genutzt von |
---|---|
22 | SSH |
3389 | RDP |
5900 | VNC |
Tunneling mit Windows
Das Tunneling mit Windows erfolgt z. B. mit PuTTy. Zunächst trägt man in das Feld Host Name (or IP address)
den Namen des Sprungsystems hop.psi.ch
ein. Im Feld Saved Sessions
trägt man den Namen der Verbindungsbeschreibung ein. In diesem Fall hop-tunnel
.
Anschliessend wird in der linke Spalte die Category SSH -> Tunnels
angewählt. Dann trägt man in das Feld Source port
z. B. den lokalen Port 9000
und im Feld Destination
das Zielssystem mit dem Port ein. In diesem Fall winterm3:3389
, für eine RDP Verbindung zu winterm3.psi.ch
. Nachdem die Angaben gemacht wurden fügt man sie mit einem Klick auf Add
hinzu.
Dann springt man zurück zur
Category Session
und speichert die Einstellungen mit einem klick auf save
ab.
Nachdem die SSH-Verbindung zu hop.psi.ch
aufgebaut wurde, startet man den RDP-Client und verbindet sich auf localhost:9000
.
Die RDP-Verbindung wird dann durch den SSH-Tunnel zu hop.psi.ch
gesendet, und von dort weiter zu winterm3.psi.ch
im PSI-LAN.
Tunneling mit Unix
Auch hier gibt es wieder verschiedene Varianten, die nachfolgend erläutert werden.
Variante 1, Kommandozeile
ssh -L 9000:winterm3.psi.ch:3389 <user>@hop.psi.ch $ <user>@hop.psi.ch's password:
Nach dem Login wurde auf dem lokalen Client Port 9000
geöffnet. Wenn man jetzt mit einem RDP-Client auf diesen Port eine Verbindung aufbaut, wird diese durch den Tunnel, über hop.psi.ch
an winterm3.psi.ch
weitergleitet. z. B. mit
$ rdesktop localhost:9000
Variante 2, Anpassen der .ssh/config
Bei Usern, die öfters verschiedene Verbindungen (RDP, SMB, etc.) zu Systemen im PSI-LAN aufbauen möchten, empfiehlt sich die Anpassung der SSH-Konfiguration auf dem Client.
SSH-Client-Konfigurations-Datei (siehe oben) anpassen:
~/.ssh/config ControlMaster auto ControlPath /home/<user>/.ssh/tmp/%h_%p_%r Protocol 2 # The following can also be specified in the host-based sections below. ForwardX11 yes ForwardX11Trusted yes ForwardAgent yes host hop.psi.ch hostname hop.psi.ch user <PSI-user> # Forward RDP to winterm3.psi.ch LocalForward 9000 winterm3.psi.ch:3389 # Forward RDP to pc8699.psi.ch LocalForward 9001 pc8699.psi.ch:3389 # Forward SMB to Fileserver fsX.psi.ch LocalForward 9445 fsX.psi.ch ...
Sobald die Verbindung zu hop.psi.ch
aufgebaut wurde, stehen die lokalen Tunnelports 9000
, 9001
und 9445
für die konfigurierten Verbindungen zur Verfügung.
Dynamisches Tunneling
hop.psi.ch
kann auch als Socks5-Proxy für dynamisches Tunneling verwendet werden. Damit lassen sich bspw. problemlos mehrere unterschiedliche internen Webserver kontaktieren, ohne das zu jedem ein separater Tunnel aufgebaut werden muss.Beispiel Windows
Mit PuTTy wird einer vorhandenen Verbindungsbeschreibung zu
hop.psi.ch
das dynamische Tunneling hinzugefügt. Dafür wird in der linken Spalte die Category SSH -> Tunnels
angewählt. Dann trägt man in das Feld Source port
z. B. den lokalen Port 9999
ein, lässt das Feld Destination
leer, und wählt die Option Dynamic
an. Nachdem die Angaben gemacht wurden fügt man sie mit einem Klick auf Add
hinzu.
Das Speichern der Verbindungsbeschreibung nicht vergessen. Nach dem eine SSH-Verbindung mit PuTTy zu
hop.psi.ch
aufgebaut wurde, steht auf dem lokalen Client der Port 9999
zur Verfügung.
Jetzt kann man z. B. bei den Proxyeinstellungen des Firefox-Browsers bei SOCKS Host: localhost Port: 9999
eintragen. In das Feld No Proxy for:
sollten zusätzlich alle Domainnamen eingetragen werden, die direkt, d. h. ohne den Umweg über hop.psi.ch
abgerufen werden sollen, bspw. localhost,
127.0.0.1,
.ethz.ch,
.com
Achtung: Über
hop.psi.ch
können nur PSI-interne Webseiten abgerufen werden. Verbindungen zu PSI-externen Webseiten werden nicht weitergeleitet!!
Tipp Damit nicht jedes Mal die Konfiguration im Browser geändert werden muss, empfiehlt es sich bspw. auf einem Notebook zwei Browser zu verwenden. Z. B. Firefox für Zugriffe von ausserhalb des PSI via hop.psi.ch
. Und den InternetExplorer für Zugriffe innerhalb des PSI ohne einer Verbindung über hop.psi.ch
.
Beispiel Unix
Variante 1, Kommandozeile
ssh -D 9999 <user>@hop.psi.ch $ <user>@hop.psi.ch's password:
Nach dem Login wurde auf dem lokalen Client Port 9999
geöffnet. Diesen Port kann man nun als Socks-Proxy verwenden. Siehe Beschreibung Windows.
Variante 2, Anpassen der .ssh/config
Für die Anpassung der SSH-Client-Konfiguration muss die Zeile
DynamicForward 9999
eingefügt werden.
SSH-Client-Konfigurations-Datei (siehe oben) anpassen:
~/.ssh/config ControlMaster auto ControlPath /home/<user>/.ssh/tmp/%h_%p_%r Protocol 2 # The following can also be specified in the host-based sections below. ForwardX11 yes ForwardX11Trusted yes ForwardAgent yes host hop.psi.ch hostname hop.psi.ch user <PSI-user> DynamicForward 9999 # Forward RDP to winterm3.psi.ch LocalForward 9000 winterm3.psi.ch:3389 # Forward RDP to pc8699.psi.ch LocalForward 9001 pc8699.psi.ch:3389 # Forward SMB to Fileserver fsX.psi.ch LocalForward 9445 fsX.psi.ch ...
Sobald die Verbindung zu hop.psi.ch
aufgebaut wurde, steht der lokale Tunnelport 9999
für das dynamische Tunneling zur Verfügung.
Hinweis für Mac-OSX User
Wenn man interne Webseiten mit Hilfe des Safari-Browsers aufrufen möchte, muss die Socks-Proxy-Nutzung über die Netzwerkeigenschaften aktiviert werden. In den Netzwerkeigenschaften kann bei der entsprechenden Netzwerkverbindung unter Advanced
->
Proxies
die Verwendung des Socks-Proxys auf Port 9999
aktiviert und eingestellt werden.
Bypass proxy settings for these Hosts & Domains:
ausgeschlossen werden.
Zielsystem Hostkey Verwaltung
[user@hop ~]$ ssh user@targethost @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is 6e:45:f9:d8:af:33:3d:a1:a5:c7:76:1d:02:f8:77:00. Please contact your system administrator. Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Offending RSA key in /home/user/known_hosts:4 RSA host key for targethost has changed and you have requested strict checking. Host key verification failed.Diese Fehlermeldung bedeutet meistens (abgesehen von einer echten Systemkompromittierung), dass sich der SSH-Hostkey des Zielsystems aus den folgenden zwei Gründen geändert hat:
- Das Zielsystem wurde neu installiert (deshalb wurde der SSH-Hostkey neu erzeugt)
- Der Verantwoertliche des Zielsystems hat absichtlich einen neuen SSH-Hostkey erzeugt.
[user@hop]$ kd usage: kd [host or IP] This program will delete a host key from your ~/.ssh/known_hosts. You should use this program when a destination host has been rebuilt, or the host SSH key on that system has been regenerated. Example usage: [user@hop]$ kd mybox # Host mybox found: line 2 type ECDSA /home/user/.ssh/known_hosts updated. Original contents retained as /home/user/.ssh/known_hosts.old [user@hop]$ *NOTE* You are required to accept the host's SSH key again on the next connection! Please bear this in mind when executing your next tunnel to the destination host! [user@hop]$
Um kd zu verwenden, muss man entweder den Hostname oder die IP Adresse eingeben:
1. Loeschen eines SSH-Hostkeys
[user@hop]$ kd targethost # Host targethost found: line 4 /home/user/.ssh/known_hosts updated. Original contents retained as /home/user/.ssh/known_hosts.old
2. Zum Zielsystem verbinden, und den neuen SSH-Hostkey akzeptieren
[user@hop]$ ssh targethost The authenticity of host 'targethost (129.129.123.123)' can't be established. ECDSA key fingerprint is f5:64:8e:a4:f1:6f:dc:c3:57:01:e6:e8:ec:ae:95:ff. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'targethost,129.129.123.123' (ECDSA) to the list of known hosts. user@targethost's password: [user@hop]$