SSH Authentifizierung mit PrivateKey

web updates kmu GmbH-wuk-WordPress und SEO Agentur SSH Authentifizierung

Wie alle PC haben auch Server ein User/Passwort zum verbinden und einloggen.

Unter Linux heisst der höchst privilegierteste User root.
Ist man im Besitz eines eigenen Linux Servers (Root Server) hat man Zwangsweise Bruteforce Attacken auf den SSH Dienst.
Eine Schutzmassnahme ist den Port von 22 auf ein anderen Port zu verlegen, um die Skriptkiddies abzuhalten. Leider ist dies aber keine richtige Schutzmassnahme.

Ein sicheres Passwort ist daher die Schutzmassnahme Nr2. Was ist sicherer als ein Passwort?
Nennen wir es mal ein Passwort mit 2000 Zeichen? Ein Key zum authentifizieren.

Diesen können wir zum Beispiel mit erstellen.


Als erstes kann man die Einstellungen vornehmen, das ein 2048bit Schlüssel generiert wird, wobei ich das DSA Verfahren bevorzuge.

Anschliessend kann man auf “Generate” drücken. Sobald man dies gemacht hat, werden die Mausbewegungen (bis der Balken voll ist) im Key Feld aufgezeichnet und damit ein zufälliger Wert generiert, welcher Einmalig ist und damit wie ein Fingerabdruck auf dich passt und am Ende dein Schlüssel gibt.

Der Schlüssel kann man entweder mit einer Passphrase schützen oder diesen ungeschützt z.B in einem TrueCrypt abspeichern.

Sobald der Kommentar geändert und gegebenenfalls ein Passwort gewählt wurde, kann nun der Private Key gespeichert werden.

Diese Datei ist euer Fingerabdruck, zum euch auf den Server zu verbinden. Diese Datei darf NIEMALS weitergegeben oder irgendwo veröffentlicht werden. Schützt diesen gut.

Anschliessend kümmern wir uns darum, dass der Server unseren Fingerabdruck kennt, dazu kopieren wir den kompletten Inhalt aus dem Public Key Feld:

Auf dem Root Server muss man nun folgende Befehle durchführen:

cd $HOME
mkdir .ssh
touch .ssh/authorized_keys
chmod –R 644 .ssh

Nun kann der zuvor kopierte Public Key in das File authorized_keys im Folder .ssh kopiert werden (alles ist 1 Zeile).

Nun muss man noch dem SSH Server mitteilen, dass er die Authentifizierung akzeptiert. Dazu editieren wir die Datei /etc/ssh/sshd_config:

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes

Startet man nun den SSH Dienst neu, kann man testen obs funktioniert hat. dies macht man mit:

/etc/init.d/ssh restart

Um dies zu testen, startet man Putty und gibt das Keyfile im dazugehörigen Feld an:

Funktioniert das Anmelden ohne Passwort, kann man ein weiteres Mal in die Datei /etc/ssh/sshd_config wechseln und folgende Zeile anpassen:

PasswordAuthentication no

Nachdem man ein 2tes Mal den SSH Dienst reloaded hat, ist die Passwortauthentifizierung abgeschaltet.
Versucht nun Jemand auf den SSH Port zu connecten ohne Key File, bekommt er vollautomatisch die Meldung “No supported authentication method available” und die Verbindung wird gleich geschlossen.

Bruteforce Bots haben so keine Chance mehr.