Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:ssh:ssh-keys]] 

Den ssh-Zugang des Users root durch Key-Authentification absichern

Ich will hier kurz beschreiben, wie das geht (es gibt auch andere Möglichkeiten). Die Anleitung bezieht sich auf das Erschaffen der keys für root. Soll für einen anderen user keys erschaffen werden, so muss die Tilde ~ in der Anleitung durch den Pfad zum Homeverzeichnis des users ersetzt werden, sofern man nicht als dieser angemeldet ist.

Man kann für root zwar auch ein Schlüsselpaar erschaffen, wenn man noch kein root-Passwort vergeben hat, die Anmeldung funktioniert dann aber nicht für den Benutzer root. Also ggf. noch „sudo passwd“ ausführen und ein root-Passwort vergeben.

Um andere User per ssh-key am Server einzuloggen siehe unten

1) Generieren des Schlüsselpaares

Man wechselt in das Verzeichnis /root/.ssh/

cd /root/.ssh

Das Schlüsselpaar wird hier erstellt mittels

ssh-keygen -t rsa

Den vorgeschlagenen Namen und Pfad kann man übernehmen (/root/.ssh/id_rsa ) Ein Passwort, das den Schlüssel später „unterwegs“ schützt, sollte man vergeben. Man erhält zwei Schlüssel id_rsa und id_rsa.pub. Die Datei id_rsa nimmt man mit (nach Hause ..) id_rsa.pub muss auf dem Server an der richtigen Stelle hinterlegt werden:

2) Erstellen der Datei "authorized_keys"

Wir befinden uns ja noch immer in /root/.ssh/)

touch authorized_keys

3) Anhängen des pub-keys an "authorized_keys"

cat id_rsa.pub >> authorized_keys

4) SSH-Dienst anpassen

Eine Einstellung des sshd ändern und ssh neustarten: Editieren der Datei /etc/ssh/sshd_config Man muss nur ein # vor der Zeile AuthorizedKeysFile %h/.ssh/authorized_keys entfernen und sshd mittels

/etc/init.d/ssh restart

neustarten (ich habe kein „d“ vergessen) Das geht auch, während man von außerhalb über ssh am server arbeitet.

5) Verwendung des Key unter Windows + putty

Wenn man den Schlüssel id_rsa zuhause hat, muss man ihn noch in das putty Format umwandeln. Dazu lädt man puttygen.exe von: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html herunter, startet es und importiert den key über File→load privat key Beim Laden des key wird man einmal nach dem Passwort gefragt, dass man beim Erstellen angegeben hatte. Dann sollte man noch ganz unten auf SSH-2 RSA umstellen und abschließend auf „Save privat key“ drücken.

6) Verwendung des Key unter Linux

Dazu den Key in das home des Users unter ~/.ssh/id_rsa ablegen. Der Key wird aber von ssh nur verwendet, wenn er nur für den User selbst lesbar ist, somit ggf.:

chmod 600 /.ssh/id_rsa

7) Öffnen der Sitzung:

Man startet Putty und läd das Profil seiner Schule. Dann geht man links auf „ssh“→„Auth“ und drückt auf „Browse“. Dort wählt man den key aus, den man gerade mittels puttygen aus dem rsa-key erstellt hat. Nun würde ich noch mal speichern und dann die Sitzung öffnen. Man wird nach dem user gefragt und dann nach dem Passwort für den key (nicht das Linuxpasswort von root).

Stolperfallen:

Nach dem Einloggen wird man noch nach dem Benutzer gefragt. Dort muss ich den Benutzer angeben, in dessen authorized_keys der .pub key meines verwendeten keys ist (in unserem Fall „root“). Vorher muss ich natürlich das Passwort des keys eingeben (welches ich beim Erstellen vergeben und bei puttygen noch mal verwendet habe. Es hat gegebenenfalls nichts mit dem Linuxpasswort des Benutzers zu tun). Diese keys funktionieren eigentlich genauso wie die von VPN. Auch dort wird der mobile Teil des keys (Zertifikat) mittels eines Passworts geschützt.

Wofür ist das ganze Theater:

Am Ende sollte man in /etc/ssh/sshd_config eine Zeile ändern: Am Ende steht „UsePAM yes“ daraus macht man „UsePAM no“ und „PasswordAuthentication yes“ wird zu: „PasswordAuthentication no“ es wird kein Abgleich durch den ssh Dämon mit der lokalen userdatenbank mehr vorgenommen, es funktionieren nur noch Zertifikate!
/etc/init.d/ssh restart   

nicht vergessen!

Den von puttygen generierten Key kann man auch einfach in WinSCP verwenden (auf der ersten Seite gibt es ein Feld für den private key)

8) Anderen User das Login zum Server freischalten

In der Datei /etc/security/access.conf wird nur root, adm und administrator der Login am Server erlaubt:

...
-:ALL EXCEPT root adm administrator:ALL
...

Um weiteren Usern das Login zu erlauben fügt man vor dieser Zeile z.B. ein:

...
+:pgmadmin meier schmitt:ALL
-:ALL EXCEPT root adm administrator:ALL
...
 [[anwenderwiki:ssh:ssh-keys]] anwenderwiki/ssh/ssh-keys.txt · Zuletzt geändert: 2020/11/11 11:56 von martin.res