ssh steht für secure shell und ist ein Programm, um sich auf
einen entfernten Rechner einzuloggen und dort Befehle auszuführen. Es
ersetzt die Programme telnet, rlogin und rsh, die sämtliche Verbindungsdaten (insbesondere Passwörter) im Klartext über das Netzwerk transportieren. ssh
dagegen bietet eine sichere, da verschlüsselte, Kommunikation über ein
unsicheres Netzwerk. Zusätzlich hat ssh den Vorteil, dass automatisch
X11-Verbindungen mit Zugriff auf das lokale Display unterstützt werden,
d.h. Sie brauchen dies nicht explizit (z.B. mit xauth oder xhost) zu erlauben. Zusammen mit ssh ist im Mathematiknetz das Programm scp
installiert, mit dem Daten zwischen zwei Rechnern auf sichere Weise
kopiert werden können (nähere Informationen finden Sie weiter unten bei
der Erläuterung der Alternativen zu ftp).
ssh können Sie innerhalb der Mathematiknetze ohne weiter Vorbereitungen und ohne Probleme benutzen. Der folgende Befehl macht eine verschlüsselte Verbindung zum Rechner kepler auf und will den Benutzer software anmelden:
gudrun@vieta[~]>>ssh kepler -l software
software's password:
No mail.
software@kepler[~]>>
gudrun@vieta[~]>>ssh kepler
gudrun's password:
No mail.
gudrun@kepler[~]>>
Eine freie Implementierung von ssh ist OpenSSH. OpenSSH kann auf verschiedene Betriebssysteme eingesetzt werden. Für Windows ist eine freie komfortable Alternative PuTTY.
Innerhalb des Mathematiknetzes - nein!
Wenn Sie sich von
einem Mathematikrechner auf einen nicht in unserem Netz befindlichen
Rechner einloggen wollen, fragen Sie nach, ob dort auch ssh installiert ist oder werden kann. Benutzen Sie die unsicheren Programme wie telnet
nur im Notfall. Wenn Sie sich von einem auswärtigen Rechner in das
Mathematiknetz einloggen wollen, lesen Sie bitte die Hinweise zum Einloggen in das Mathenetz von ausserhalb in den FAQs.
1.Falls Sie noch kein $HOME/.ssh Verzeichnis haben, müssen sie diesen erstellen mit:
cd ~
mkdir .ssh
chmod 700 .ssh
gudrun@vieta[~]>>ssh-keygen -b 2048 -t dsa -f identity
gudrun@vieta[~]>>ssh-keygen -b 2048 -t das -f identity
Generating public/private das key pair.
Enter passphrase (empty for no
passphrase):
Enter same passphrase again:
Your identification has been
saved in /gauss/user/gudrun/.ssh/id_dsa. Your public key has been saved
in /gauss/user/gudrun/.ssh/id_dsa.pub.
The key fingerprint is:
0f:9d:ff:48:59:42:71:10:00:f9:09:a8:55:34:ab:8a mein schlüssel
identity.pub -> öffentlicher Schlüssel
identity -> geheimer Schlüssel
Wie telnet und rlogin/rsh werden auch bei ftp die Daten im Klartext über das Netzwerk transportiert. Deshalb ist die Benutzung von ftp mit ihrem Standardpasswort innerhalb des Mathematiknetzes nicht zugelassen. Als Alternativen können Sie scp benutzen. Das folgende Beispiel kopiert die Dateien test, die sich auf dem Rechner vieta unter /vieta/user/gudrun/test befindet, auf den Rechner tanne in das Heimatverzeichnis des Benuzters gudrun:
gudrun@vieta[~]>>pwd /vieta/user/gudrun gudrun@vieta[~]>>scp test tanne:
gudrun@vieta[~]>>scp software@tanne:test
Beim Einloggen von Rechner A auf Rechner B überprüft ssh
zuerst den sogenannten host_key. Damit wird sichergestellt, dass er
sich bei Rechner B tatsächlich um Rechner B handelt und nicht um einen
Rechner, der vorgibt, Rechner B zu sein. Für diesen Mechanismus wird
eine Datei mit dem Namen known_hosts verwendet. Dabei sucht ssh
zunächst nach einer globalen zentral verwalteten Datei, in die der
Systemadministrator die host_keys nach der Installation der Rechner
einträgt. Wird dort kein Eintrag für den entsprechenden Rechner
gefunden, so wird die lokale Datei des jeweiligen Benutzers unter $HOME/.ssh/known_hosts
überprüft. Sofern die Identität des Rechners B anhand dieser Datei
sichergestellt werden kann, werden Rechber A und Rechner B verbunden.
Kann die Identität nicht gewährleistet werden, so erhalten Sie die
Fehlermeldung 1. Sie können dann selbst wählen, ob Sie sich trotzdem
verbinden wollen oder nicht. Wählen Sie ja, so wird der host_key des
Rechners B automatisch in Ihrer persönlichen Datei $HOME/.ssh/known_hosts
abgelegt. Beim nächsten Einloggen auf dem Rechner B ist der host_key
dann bekannt und Sie erhalten die obige Fehlermeldung nich mehr. Damit
ist die Verbindung zwischen Rechner A und Rechner B hergestellt.
Rechner B generiert nun eine Zufallszahl, die an Rechner A
verschlüsselt übertragen wird. Anschliessend benutzen beide Rechner
Zufallszahl, um die gesamte weitere Sitzung zu verschlüsseln.
Als nächstes wird die Authentisierung des Benutzers vorgenommen. Dazu
verwendet ssh in der hier installierten Version entweder das Public
Key-Verfahren DSA oder ssh fragt nach dem Passwort. Im ersten Fall benutzt ssh das DSA-Schlüssel-Paar im Verzeichnis $HOME/.ssh/. Dabei bezeichnet id_dsa den geheimen Schlüssel und id_dsa.pub den öffentlichen Schlüssel. Um sich per DSA authentisieren zu können, muss der öffentliche Schlüssel in der Datei $HOME/.ssh/authorized_keys eingetragen sein (siehe auch Einloggen ohne Angabe des Passwortes).
Wen kein Verzeichniss $HOME/.ssh
oder keine Schlüssel existieren, so wird nach dem Passwort gefragt. Der
gesamte Datenverkehr (also bereits die Übermittlung Ihres
Benutzernamens und des Passwortes) wird dabei aber bereits automatisch
verschlüsselt ohne dass ein Benuzter davon etwas bemerkt.
Bei der Verwendung von ssh gibt es im wesentlichen drei Fehlermeldungen:
Fehlermeldung 1:
gudrun@vieta[~]>>ssh maclaurin -l gudrun
Secure
connection to maclaurin refused; reverting to insecure method. Using
rsh. WARNING: Connection will not be encrypted.
gudrun@vieta[~]>>cat $HOME/.ssh/known_hosts | grep tanne
tanne,131.234.18.22 ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAwroyNr3LIwMlI0lOzT+c9es0i6WShOhG4AG7pxNAE7Q5AYBUyv
mWnS/tXagb/Oo6bwoKOhfypCqBTkIH344bv4K8sA4H3Ij7SDjNjmU43a6b8QIRnUt1CsZ0dmrSw0PFejvx9eVEGmdrvwqu8ZP6EW7HPdVQaJKVO
89Rrn3RnB0=
gudrun@vieta[~]>>
gudrun@vieta[~]>>ssh tanne
Last login: Mon Feb 21
11:12:00 2000 from vieta
Sun Microsystems Inc. SunOS 5.6 Generic August
1997 No mail.
gudrun@tanne [~] >>
gudrun@vieta[~]>>ssh tanne
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING:
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 the host key has just been changed. Please contact your
system administrator. Add correct host key in
/vieta/user/gudrun/.ssh/known_hosts to get rid of this message. X11
forwarding is disabled to avoid attacks by corrupted servers.
Are you
sure you want to continue connecting (yes/no)? no
gudrun@vieta[~]>>
Wenn Sie bei der Benutzung von ssh oder scp von Rechner A auf Rechner B nicht immer Ihr Passwort eingeben möchten, so müssen Sie Ihren öffentlichen Schlüssel (zu finden in der Datei RechnerA:$HOME/.ssh/identity.pub) in die Datei RechnerB:$HOME/.ssh/authorized_keys (als eine lange Zeile) eintragen.
gudrun@vieta[~]>>cat identity.pub >> authorized_keys
Innerhalb des Mathematiknetzes werden die ssh-Schlüssel beim Anlegen eines Benutzeraccounts automatisch erzeugt und im UNIX-Verzeichnis unter $HOME/.ssh abgelegt. Sie können sich jederzeit neue oder weitere Schlüssel mit dem Befehl ssh-keygen erzeugen. Sofern Sie die Authentisierung mittels der DSA-Schlüssel vornehmen lassen (siehe auch Einloggen ohne Angabe des Passwortes und Zur Funktionsweise von ssh),
gehen Sie das Risiko ein, dass jemand die Schlüssel kopieren und sich
damit Ihre Identität verschaffen kann. Achten Sie deshalb unbedingt auf
die richtigen Rechte Ihres geheimen Schlüssels - er sollte nur von
Ihnen lesbar sein:
gudrun@vieta[~/.ssh]>>pwd /vieta/user/gudrun/.ssh
gudrun@vieta[~/.ssh]>>ll identity
-rw------- 1 gudrun root 527
Feb 4 1998 identity
gudrun@vieta[~/.ssh]>>
gudrun@kepler[~]>>ssh vieta
Enter passphrase for key
'/gauss/user/gudrun/.ssh/id_dsa':
Last login: Mon Aug 18 23:51:22 2003
from macintyre.uni-paderborn.de
gudrun@vieta[~]>>
gudrun@kepler[~]>>ssh-keygen -t dsa -p
Enter file in
which the key is (/gauss/user/gudrun/.ssh/id_dsa):
Enter old
passphrase:
Key has comment '/gauss/user/gudrun/.ssh/id_dsa'
Enter new
passphrase (empty for no passphrase):
Enter same passphrase again:
Your
identification has been saved with the new passphrase.
gudrun@kepler[~]>>
Es gibt verschiedene Implementierungen des ssh-Protokolls. In
Mathematik-Netz wird die Open-Source Implementierung OpenSSH
eingesetzt. Früher wurde eine kommerzielle Software benutzt. Die mit
der alten Version erzeugten Schlüssel funktionieren leider nicht mit
OpenSSH, aber sie können die Schlüssel konvertieren.
Erstellen Sie ein Verzeichnis für die Konfiguration, und stellen Sie sicher, daß nur Sie darauf zugreifen dürfen:
gudrun@kepler[~]>>mkdir .ssh
gudrun@kepler[~]>>chmod 700 .ssh
gudrun@kepler[~]>>ssh-keygen -i -f .ssh2/id_dsa_2048_a
> .ssh/id_dsa
gudrun@kepler[~]>>ssh-keygen -i -f
.ssh2/id_dsa_2048_a.pub > .ssh/id_dsa.pub
gudrun@kepler[~]>>cat .ssh/id_dsa.pub > .ssh/authorized_keys
Eine detaillierte Dokumentation der einzelnen Kommandos findet man in den entsprechenden man-Pages.