[TUT] sichere Pub-Key Authentifizierung mit ssh

Dieses Thema [TUT] sichere Pub-Key Authentifizierung mit ssh im Forum "Linux & Andere" wurde erstellt von RavensMetaller, 22. Juni 2005.

Thema: [TUT] sichere Pub-Key Authentifizierung mit ssh Authentifizierung via Pub-Key-Verfahren Sinn und Zweck des ganzen: - erhöhte Sicherheit (nur der Besitzer des Key's...

  1. 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:
    http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
    Putty muss nicht installiert werden. Einfach an einen beliebigen Ort entpacken und wir sind ready to go.
    [​IMG]

    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.
    [​IMG]

    Unter Connection - Data tragen wir den Usernamen für den automatischen connect ein. In meinem Fall wäre dies root.
    [​IMG]

    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!!!
    [​IMG]

    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.
    [​IMG]

    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!!!
    [​IMG]

    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).
    [​IMG]

    Wir wechseln nun zurück zu Puttygen und kopieren den Key in die Zwischenablage.
    [​IMG]

    Zurück auf den Server in den Inhalt der Zwischenablage in den vi(m) mittels Rechtsklick einfügen:
    [​IMG]

    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:
    [​IMG]

    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:
    [​IMG]

    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:
    [​IMG]

    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:
    [​IMG]

    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.
    [​IMG]

    Über einen Rechtsklick können wir nun direkt auf den Server connecten, ohne Passworteingabe - sicher und sehr komfortabel.
    [​IMG]

    [​IMG]

    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. 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. sobald ich Zeit hab ^^
     
Die Seite wird geladen...

[TUT] sichere Pub-Key Authentifizierung mit ssh - Ähnliche Themen

Forum Datum
[TUT] Windows7 schneller booten(Mehrkernprozessor) Windows XP Forum 29. Okt. 2009
Re: [TUT] Squid Proxy-Server unter Windows & Linux Windows XP Forum 28. Juli 2006
[TUT] Einrichten einer lokalen Testumgebung - Teil 2 - PHP 5.0.x Webentwicklung, Hosting & Programmierung 12. März 2005
[TUT] PHP-Scripte im IIS 5.1 Windows XP Forum 16. Juli 2005
[TUT] Einrichten einer lokalen Testumgebung - Teil 1 - Apache Webserver Webentwicklung, Hosting & Programmierung 11. März 2005