Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Client / Server Dienste / Secure Shell (OpenSSH)

Secure Shell (OpenSSH)

Kategorie: Client / Server DiensteErstellt: 08.12.2007 - 18:21 Geändert: 21.02.2008 - 23:29
Autor: Oliver Portugall
0Secure Shell (SSH) ist ein Netzwerkprotokoll das auf TCP aufsetzt und über Port 22 läuft. Die erste Version entstand 1995 durch Tatu Ylönen und wurde mit der Version 2 proprietär. 1999 wurde dann das OpenSSH-Projekt ins leben gerufen um eine Open-Source Implementierung anzubieten. Als Basis für dieses Projekt wurde die erste Version weiterentwickelt, da diese noch Open-Source war.

OpenSSH gewährleistet eine verschlüsselte Verbindung sowohl für die Authentifizierung wie auch für die Datenübertragung.
Die Verschlüsselung wird hierbei mit dem Diffie-Hellman Verfahren sichergestellt.


Open SSH Server


Die Installation ist mit apt-get install openssh-server wie immer denkbar einfach.
In der Konfigurationsdatei /etc/ssh/sshd_config können Änderungen, wie z.B. Port und ListenAddress, an dem Server vorgenommen werden. Normalerweise ist die Grundkonfiguration aber ausreichend.
Während der Installation wird auch ein SSH2 Key erzeugt.
SSH Key (Fingerprint) des OpenSSH Servers

sv1@server:~$ ssh-keygen -l
Enter file in which the key is (/home/sv1/.ssh/id_rsa): /etc/ssh/ssh_host_rsa_key
2048 11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff /etc/ssh/ssh_host_rsa_key.pub



Open SSH Client


Die Installation läuft analog zum Server mit apt-get install openssh-client.
Verbindungsaufbau zum Server

cl1@client:~$ ssh 192.168.1.23

Bei diesem Verbindungsaufbau wird der lokale Benutzername als Anmeldename auf dem Server verwendet. In diesem Fall mit cl1.
Verbindungsaufbau zum Server mit abweichendem Benutzername

cl1@client:~$ ssh benutzername@192.168.1.23

Bei dem Verbindungsaufbau wird der im Server hinterlegte RSA Key (siehe SSH Server) übertragen, damit der Client sicherstellen kann das die Verbindung auch wirklich von dem gewünschten Server kommt.
Client seitig werden wir bei der ersten Verbindung zum Server gefragt ob wir dem Key zustimmen. Danach wird er in der Liste der bekannten Hosts hinterlegt und die Verbindung wird aufgebaut.
RSA key fingerprint

cl1@client:~$ ssh benutzername@Server
The authenticity of host ' Server(192.168.1.23)' can't be established.
RSA key fingerprint is 11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'Server' (RSA) to the list of known hosts.
benutzername@Server's password:
Linux Server 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Sat Dec 8 11:20:14 2007
benutzername@Server:~$


Die Übertragung des RSA key fingerprint bei der ersten Verbindung ist die "einzige" Schwachstelle in der Verbindung.
Wenn an dieser Stelle eine Man-in-the-middle Attacke statt findet, könnte der key manipuliert sein.
Um dieses Restrisiko auszuschließen müsste der key auf einem anderen, sicheren Weg zum Client kommen.


Wenn der RSA key geändert wurde, z.B. wegen einer Neuinstallation des Servers, erscheint folgende Meldung.


cl1@client:~$ ssh benutzername@Server
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ff:ee:dd:cc:bb:aa:00:99:88:77:66:55:44:33:22:11.
Please contact your system administrator.
Add correct host key in /home/cl1/.ssh/known_hosts to get rid of this message.
Offending key in /home/cl1/.ssh/known_hosts:10
RSA host key for Server has changed and you have requested strict checking.
Host key verification failed.


In dieser Situation hilft nur noch den alten key aus der Datei known_hosts zu löschen. Das gilt natürlich nur wenn der key geändert wurde, ansonsten könnte es sich wirklich um eine Man-in-the-middle Attacke handeln (wie auch in der Meldung schön beschrieben ;-)).
Key aus known_hosts löschen

cl1@Client:~$ ssh-keygen -R Server
/home/cl1/.ssh/known_hosts updated.
Original contents retained as /home/cl1/.ssh/known_hosts.old



Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Client / Server Dienste / Secure Shell (OpenSSH)
simplum