- #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:
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.
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.
Unter Connection - Data tragen wir den Usernamen für den automatischen connect ein. In meinem Fall wäre dies root.
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!!!
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.
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!!!
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:
Nun erstellen wir eine neue Datei unterhalb des angelegten Verzeichnisses:
Diese Datei editieren wir mittels vi(m). WICHTIG: Der Editor muss Word-Wrapping deaktiviert haben, da unser Key keinen Zeilenubruch haben darf.
Nun drücken wir die Taste i (wie Insert).
Wir wechseln nun zurück zu Puttygen und kopieren den Key in die Zwischenablage.
Zurück auf den Server in den Inhalt der Zwischenablage in den vi(m) mittels Rechtsklick einfügen:
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.
sollte dieses Problem beheben.
Der nächste Screenshot zeigt das Ergebniss vor-und nachher:
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:
Wenn dies erledigt ist, muss der ssh Daemon neu gestartet werden.
Sollte mit einem [OK] quitiert werden.
Zurück zu Putty. Unter SSH - Auth muss nun der abgespeicherte Schlüssel angegeben werden:
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:
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.
Über einen Rechtsklick können wir nun direkt auf den Server connecten, ohne Passworteingabe - sicher und sehr komfortabel.
Und nun viel Spass mit eurer neuen Pub-Key Authentifizierung.
Fragen, Anregungen, Kritik bitte hier Forum posten.
Gruß
Sven
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.
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.
Unter Connection - Data tragen wir den Usernamen für den automatischen connect ein. In meinem Fall wäre dies root.
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!!!
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.
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!!!
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
Code:
touch ~/.ssh/authorized_keys
Code:
vi ~/.ssh/authorized_keys
Wir wechseln nun zurück zu Puttygen und kopieren den Key in die Zwischenablage.
Zurück auf den Server in den Inhalt der Zwischenablage in den vi(m) mittels Rechtsklick einfügen:
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
Der nächste Screenshot zeigt das Ergebniss vor-und nachher:
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:
Wenn dies erledigt ist, muss der ssh Daemon neu gestartet werden.
Code:
/etc/init.d/ssh restart
Zurück zu Putty. Unter SSH - Auth muss nun der abgespeicherte Schlüssel angegeben werden:
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:
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.
Über einen Rechtsklick können wir nun direkt auf den Server connecten, ohne Passworteingabe - sicher und sehr komfortabel.
Und nun viel Spass mit eurer neuen Pub-Key Authentifizierung.
Fragen, Anregungen, Kritik bitte hier Forum posten.
Gruß
Sven