Dass Passwörter nicht ideal sind, um Benutzer an einem System anzumelden, hat sich mittlerweile herumgesprochen. Für die sichere Authentifizierung eines Benutzers mithilfe von SSH (Secure Shell) werden daher gerne Public-Keys eingesetzt. Dies setzt voraus, dass Benutzer im Besitz eines Schlüsselpaares, bestehend aus Public- und Private-Key, sein müssen. Auch ist sicherzustellen, dass die Public-Key-basierte Anmeldung auf diesen Systemen eingeschaltet ist und eine Anmeldung mit einem Passwort nicht mehr möglich ist.
OpenSSH kennt hierfür die beiden Optionen "AuthenticationMethods" und "PasswordAuthentication". Letztere ist in diesem Fall auf "no" zu setzen. In der Default-OpenSSH-Konfiguration enthält die Option AuthenticationMethods bereits den Parameter "publickey", womit eine Anmeldung mithilfe eines Public-Keys möglich ist. Die SSH-Schlüssel lassen sich auf Linux-Systemen sehr leicht mithilfe von ssh-keygen erzeugen. Auf Windows-Systemen kommt gerne PuTTYgen [1] zum Einsatz. Der hiermit erzeugte Public- und Private-Key wird dann in zwei getrennten Dateien gespeichert. Auf Linux-Systemen liegen diese zumeist im Ordner "~/.ssh" unterhalb des Home-Verzeichnisses des Benutzers, der die Schlüssel erzeugt hat. Hierbei ist zu beachten, dass auch lediglich dieser Benutzer Zugriff auf den Ordner erhält, in dem sich die Schlüssel befinden.
Meldet sich ein Benutzer an einem System mithilfe von SSH an und verwendet hierfür die Public-Key-basierte Authentifizierung, muss das entfernte System über den öffentlichen Schlüssel des Benutzers verfügen. Zumeist wird der Schlüssel initial mittels »ssh-copy-id
«
auf dieses System übertragen. Dieser Ansatz mag in kleineren Umgebungen problemlos funktionieren, ist jedoch ab einer gewissen Anzahl an Systemen mit viel Aufwand verbunden, da der Kopiervorgang für sämtliche Systeme erfolgen muss, auf denen sich der Benutzer anmelden
Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.