Einfache und effektive Methode um SSH sicherer zu machen. Anleitung für alle Linux Distributionen
SSH ermöglicht es, sich von einem entfernten Computer aus an einer Shell auf dem Zielcomputer anzumelden und daran so zu arbeiten, als sitze man direkt vor dem Zielsystem. Dabei werden im Gegensatz zu anderen ähnlichen Diensten wie Telnet alle Daten verschlüsselt übertragen.
Schritt 1: Erstellen eines Schlüsselpaars
blade:/root # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
Das Programm fragt nach einem Speicherort für den Public- und den Privatekey. Dieser wird default im Homeverzeichnis unter .ssh/id_rsa gespeichert. Das ist okay. Jetzt wird nach einem Passwort für den privaten Schlüssel gefragt. Hier ein sicheres Passwort eingeben und wiederholen.
Schritt 2: Verteilen des Publickeys
blade:/root # ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.4.204 17 Password:
Nach dem Parameter i wird der Speicherort des Publickeys angegeben. Danach folgt der User und das Zielsystem auf dem der Publickey installiert werden soll. Dabei wird der Publickey in der Datei authorized_keys im .ssh Verzeichnis des angegebenen Users gespeichert.
Now try logging into the machine, with "ssh ' root@192.168.4.204 '", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. blade:/root #
Schritt 3: Testen des Public/Privatekeys
ssh root@192.168.4.204
Es wird nach dem Passwort des privaten Schlüssels gefragt. Sollte der Login erfolgreich sein kann man die Authentifizierung des SSH Servers mit Passwörtern abschalten, d. h. das nur noch Private/Public Key Anmeldungen funktionieren. Dies erhöht die Sicherheit gegen BruteForce Angriffe auf SSH.
Schritt 4: Abschalten der Passwortauthentifizierung
nano /etc/ssh/sshd_config
Folgenden Parameter / Zeile ergänzen:
ChallengeResponseAuthentication no