Konfiguration der Secure Shell an einem Beispiel
ssh ist ein Ersatz für rlogin/rsh und telnet, der starke Verschlüsselung mit RSA und DES bereitstellt. Die Schlüssellänge für RSA ist in der Voreinstellung 768 bit für den privaten und 1024 bit für den öffentlichen Schlüssel.
Allgemeines
Es gibt zwei Hauptversionen von ssh: Version 1 (aktuell 1.2.27) und Version 2 (aktuell 2.0.13). Das Problem mit Version 2 ist, daß sie weniger frei ist als Version 1. Genauer gesagt, sie ist frei für nicht-kommerzielle Nutzung. Jede berufliche Nutzung fällt unter kommerzielle Nutzung, was in Version 1 noch nicht der Fall war. Daher verwende ich Version 1 und kann keine Aussagen über die Konfiguration von Version 2 machen.
ssh kann bezogen werden von metalab. Dieser Server hat zahlreiche Mirrors weltweit. Freie Alternativen wie lsh sind in Entwicklung, aber wohl noch nicht einsatzbereit.
Es gibt ein ssh-FAQ von Thomas König.
Installation
Für die meisten Distributionen dürfte ein ssh-Paket verfügbar sein. Für Red Hat ist dies z.B. auf den Halloween-CDs zu finden. Auf die Installation dieser Pakete gehe ich nicht näher ein.
Hat man den Quellcode, ist das Vorgehen wie bei GNU-Programmen gewohnt:
./configure make CFLAGS=-O2 make install
Diese Schritte auf allen Hosts wiederholen. Wenn die Hosts sich das Source-Verzeichnis teilen, ist auf den weiteren Hosts nur noch 'make hostinstall' notwendig.
make install
generiert den Host-Key, dessen privater Teil in /etc/ssh_host_key gespeichert wird. Der öffentliche Teil kommt nach /etc/ssh_host_key.pub.
Nun ist auf jedem Host, der ssh-Logins zulassen soll, eine Konfigurationsdatei /etc/sshd_config anzulegen und sshd zu starten. Für /etc/sshd_config gibt es viele Optionen, mir genügt jedoch eine Minimalversion, in der die meisten Optionen der Vorgabe entsprechen:
/etc/sshd_config
IdleTimeout 0 RhostsAuthentication no PasswordAuthentication no RhostsRSAAuthentication yes KeyRegenerationInterval 0 PermitRootLogin no SyslogFacility AUTH
In Kurzfassung bedeutet das, daß sowohl Logins mit Paßwort als auch solche ohne Paßwort, aber nur von bekannten Hosts aus (RhostsRSAAuthentication), zugelassen sind. Normale Logins über unsichere Methoden (Paßwort, .rhosts) sind nicht möglich. Aber Vorsicht! Login mit "rsh" oder "telnet" ist weiterhin möglich, wenn auf dem Server noch rlogind und in.telnetd verfügbar sind. Diese sollten dann in /etc/inetd.conf abgeschaltet werden. Dann inetd neu starten und die Kiste ist sicher ;-)
Der Daemon sshd kann einfach durch Angabe seines Namens, also ohne zusätzliche Argumente, gestartet werden.