SSH (Secure Shell) ermöglicht es einen Rechner von einem anderen Rechner aus zu bedienen. Es ähnelt stark Telnet, ist jedoch verschlüsselt.
In diesem Artikel wird der Rechner, von dem aus ein anderer fernbedient werden soll als „Client“ bezeichnet - der fernzubedienende Rechner als „Server“.
Die SSH-Client-Software ist auf dem Client in der Regel schon installiert. Somit muss lediglich die SSH-Server-Software auf dem Server installiert werden.
sudo apt-get install openssh-server
Weitere Informationen zur Installation von Programmen finden sich hier: Paketverwaltung.
Nun sollte es schon möglich sein, sich zu dem Server zu verbinden:
ssh Benutzer@Server
Dabei ist „Benutzer“ der Benutzername auf dem Server und „Server“ ist der Name oder die IP des fernzubedienenden Rechners.
Nun wird das Passwort des Benutzers abgefragt und nach erfolgreicher Eingabe hat man Zugriff auf den Server.
Um die Verbindung zu schließen, nutzt man folgenden Befehl:
logout
Der einzige Schutz des Servers besteht nun aus dem Login-Passwort des Benutzers. Um die Sicherheit zu erhöhen, können Schlüsseldateien eingesetzt werden. Dafür muss zuerst ein Schlüsselpaar erzeugt werden.
Auf dem Client führt man folgenen Befehl aus, um ein Schlüsselpaar zu erzeugen:
ssh-keygen
Dadurch wird ein privater und ein öffentlicher Schlüssel erzeugt. Man wird um Eingabe einer Passphrase gebeten. Ob man diese leer lässt oder nicht, bleibt einem selbst überlassen, denn man braucht später die private Schlüsseldatei, um zum Server zu verbinden. Eine starke Passphrase stellt jedoch eine zusätzliche, starke Schutzschicht dar und ist daher zu empfehlen.
Als nächstes wird die öffentliche Schlüsseldatei auf den Server kopiert:
scp ~/.ssh/id_rsa.pub user@user-server:~/
Nun loggt man sich auf dem Server ein:
ssh Benuter@Server
Und fügt den Schlüssel an die richtige Datei an:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Man braucht die Kopie des öffentlichen Schlüssels nun nicht mehr und kann ihn daher löschen.
rm ~/id_rsa.pub
Man kann den Schlüssel auch direkt als datei “~/.ssh/authorized_keys“ kopieren, doch dabei werden schon eventuell vorhandene Schlüssel in der Datei überschrieben.
Der nächste wichtige Schritt ist die Anpassung der Konfigurationsdatei auf dem Server:
sudo nano /etc/ssh/sshd_config
Keinen GUI-Texteditor benutzen! Jeder andere Terminal-Texteditor neben nano ist aber natürlich auch möglich.
In der Datei werden nun folgene zwei Zeilen bearbeitet, damit die Anmeldung per Schlüsseldatei funktioniert. So sollten sie nach der Bearbeitung aussehen:
RSAAuthentication yes PubeyAuthentication yes
Nun kann man die Anmeldung mittels Login-Passwort deaktivieren, damit nur noch die Anmeldung mittels Schlüsseldatei möglich ist. Dazu werden folgende drei Zeilen so bearbeitet, dass sie folgendermaßen aussehen:
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no
Als zusätzliche Sicherheitsmaßnahme kann man noch festlegen, welche Benutzer sich überhaupt per ssh anmelden dürfen:
AllowUsers Benutzername
Nun speichert man die Änderungen und schließt die Datei.
Damit die Änderungen wirksam werden, wird die SSH-Software neu gestartet:
/etc/init.d/ssh restart
Die Änderungen sollten nun in Kraft getreten sein - der Server ist damit fertig konfiguriert und man kann die Verbindung trennen:
logout
Wenn man nun mit dem Befehl
ssh Benutzer@Server
zum Server verbinden will, wird man (sofern vorhanden) nach der Passphrase für die Schlüsseldatei gefragt und nach erfolgreicher Eingabe wird die Verbindung aufgebaut.
Um die Passphrase nicht jedes Mal erneut eingeben zu müssen, gibt es „ssh-agent“. In der Standardinstallation ist dieser bereits aktiviert. Mit dem folgenden Befehl kann man die Schlüsseldatei an ssh-agent übergeben und muss somit die Passphrase nur dieses eine Mal eingeben für diese Sitzung:
ssh-add
Anschließend kann man sich zum Server verbinden, ohne nach der Passphrase gefragt zu werden.