[TUT] sichere Pub-Key Authentifizierung mit ssh

  • #1
R

RavensMetaller

Guest
Authentifizierung via Pub-Key-Verfahren

Sinn und Zweck des ganzen:
- erhöhte Sicherheit (nur der Besitzer des Key's kann sich per ssh einloggen)
- komfortabler, da keine Passworteingabe mehr nötig ist.
- Ein-Klick Authentifizierung
- Schutz vor Dictionary Attacken auf den ssh Daemon

Ich benötige:
- eine Linuxbüchse (Distribution egal, da ssh Distributionsunabhängig ist)
- putty, puttygen und puttagent
- 15 Minuten Zeit

Los geht's:

Im ersten Schritt besorgen wir uns putty sowie die nötigen Komponenten unter folgender Adresse:

Putty muss nicht installiert werden. Einfach an einen beliebigen Ort entpacken und wir sind ready to go.
1.jpg


Nun starten wir die putty.exe und erstellen die erste Verbindung.
Im Register Session tragen wir die IP Adresse ein und geben der Verbindung einen (beliebigen) Namen.
2.jpg


Unter Connection - Data tragen wir den Usernamen für den automatischen connect ein. In meinem Fall wäre dies root.
3.jpg


Unter SSH muss Protokoll Version 2 ausgewählt werden, da ssh Version 1 doch erhebliche Sicherheitlücken aufweisst. Die Angabe von Compression ist beliebig. Wenn der Server über das Internet administriert werden soll, sollte Compression aktiviert sein. Putty NICHT schliessen!!!
4.jpg


Nun legen wir das Schlüsselpaar an. Dazu starten wir das ebenfalls heruntergeladene Programm puttygen.exe.
Die Schlüssellänge sollte 2048 Bit betragen. Zu beachten: mehr als 2048 Bit macht keinen Sinn, da bereits 2048 (zumindest momentan) nicht errechenbar sind. Größere Schlüssel kosten nur unnötig Rechenleistung und verzögern den Anmeldevorgang erheblich. Damit der Schlüssel generiert wird, reicht ein Klick auf Generate. Da dieser Key anhand von zufallsgenerierten Zahlen erstellt wird, müssen wir nun etwas mit der Maus hin und her wackeln, bis der Key vollständig generiert wurde.
5.jpg


Der Key ist nun fertig. Über File speichern wir nun sowohl den Private-Key als auch den Pub-Key. Letzerer muss nachher auf dem Linuxserver bekannt gemacht werden. Die Angabe der Passphrase ist optional. Wer Ein-Klick Anmeldung nutzen will, muss diesen leer lassen. Aber vorsicht: Jeder, der im Besitz des Private-Key ist, kann sich nun am Server anmelden! Daher sollte der Key niemals weitergegeben werden. Puttygen noch NICHT schliessen!!!
6.jpg


Nun melden wir uns noch im alten Verfahren per ssh an dem Linuxserver als root an.
Als erstes müssen wir ein Verzeichniss unterhalb des Home von root erstellen.
Dazu geben wir in der Konsole folgendes ein:
Code:
mkdir -p ~/.ssh
Nun erstellen wir eine neue Datei unterhalb des angelegten Verzeichnisses:
Code:
touch ~/.ssh/authorized_keys
Diese Datei editieren wir mittels vi(m). WICHTIG: Der Editor muss Word-Wrapping deaktiviert haben, da unser Key keinen Zeilenubruch haben darf.
Code:
vi ~/.ssh/authorized_keys
Nun drücken wir die Taste i (wie Insert).
7.jpg


Wir wechseln nun zurück zu Puttygen und kopieren den Key in die Zwischenablage.
8.jpg


Zurück auf den Server in den Inhalt der Zwischenablage in den vi(m) mittels Rechtsklick einfügen:
9.jpg


Zum Speichern drücken wir einmal ESC um auf die Kommandoebene von vi(m) zu wechseln. (Das INSERT am unteren Bildschirmrand verschwindet.
Danach :wq eingeben und Enter drücken.

Ein ls -la ~/.ssh/ verrät uns, das die Datei die falschen Zugriffsrechte besitzt.
Code:
chmod 0600 ~/.ssh/authorized_keys
sollte dieses Problem beheben.
Der nächste Screenshot zeigt das Ergebniss vor-und nachher:
10.jpg


Nun editieren wir die Datei /etc/ssh/sshd_config mit einem beleibigen Editor (vi, nano, mcedit oder andere)
ACHTUNG: VORHER Sicherungskopie anfertigen, da im Fehlerfall KEIN Zugriff mehr möglich ist (ausser ihr habt direkten Zugang zum Rechner)
Ich werde nicht auf alle Optionen eingehen. Wichtig ist, das das AuthorizedKeysFile genau so angegeben wird, wie im Screenshot beschrieben.
Alle Authentifizierungmethoden müssen so eingestellt werden, wie angegeben. Im folgenden Bild ist das fertige Ergebniss zu sehen:
11.jpg


Wenn dies erledigt ist, muss der ssh Daemon neu gestartet werden.
Code:
/etc/init.d/ssh restart
Sollte mit einem [OK] quitiert werden.

Zurück zu Putty. Unter SSH - Auth muss nun der abgespeicherte Schlüssel angegeben werden:
12.jpg


Nun können wir unter Session die Sitzung abspeichern.

Damit wir die eigentliche Ein-Klick Anmeldung realisieren können, benötigen wir das Programm Puttyagent, welches wir ebenfalls heruntergeladen haben.
Dazu erstellen wir eine Verknüpfung zu Puttyagent und editieren deren Eigenschaften, indem wir hinter dem Programmnamen das Keyfile angeben:
13.jpg


Die Verknüpfung legen wir nun im Autostart des Benutzers ab. Nach dem Start des Programms finden wir im Systray ein weiteres Symbol.
Über Rechtsklick View Keys können wir kontrollieren, ob der Key auch wirklich geladen wurde. Falls nicht, stimmt etwas mit der Verknüpfung nicht.
14.jpg


Über einen Rechtsklick können wir nun direkt auf den Server connecten, ohne Passworteingabe - sicher und sehr komfortabel.
15.jpg


16.jpg


Und nun viel Spass mit eurer neuen Pub-Key Authentifizierung.

Fragen, Anregungen, Kritik bitte hier Forum posten.

Gruß
Sven
 
  • #2
Hi,
erst mal danke schön für diese tolle tut!!!

Eine frage hätte ich jedoch noch:

Kann man sich nacher trotzdem noch wie gewohn mit username und passwort anmelden oder muss man sich immer zwingen mit key anmelden??
 
  • #3
Hallo,

ja, kam man trotzdem,
wenn es nicht gerade Tante root ist,

bzw du meldest dich von einem Client der den Key nicht hat ;)

@RavensMetaller
Ähm, ssh für Tante root mag ich nicht :mad:

aber dein TUT ist wie immer gelungen, danke ;)
 
  • #4
KerstenG schrieb:
Hallo,

ja, kam man trotzdem,
wenn es nicht gerade Tante root ist,

bzw du meldest dich von einem Client der den Key nicht hat ;)

@RavensMetaller
Ähm, ssh für Tante root mag ich nicht  :mad:

aber dein TUT ist wie immer gelungen, danke ;)

Auf kein Problem:

Code:
PermitRootLogin no

deaktiviert den Zugriff für Tante root ;)

Gruß
Sven
 
  • #5
Halllo,

danke, jetzt geht es mir besser ;D

bau es bitte in dein TUT ein :-*
 
  • #6
KerstenG schrieb:
bau es bitte in dein TUT ein :-*

sobald ich Zeit hab ^^
 
Thema:

[TUT] sichere Pub-Key Authentifizierung mit ssh

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben