OpenSSH Public-Private-Key
Inhaltsverzeichnis
SSH, die secure shell, dient dem entfernten Zugriff auf einen Linux-PC.
Im Gegensatz zu telnet oder ftp werden alle Daten, also auch Kennwörter, verschlüsselt übertragen.
Aufgerufen wird es in einer shell, die Ziel-Rechner-IP ist natürlich anzupassen, kann aber auch ein auflösbarer Name sein:
ssh 192.168.0.10 ssh irgendein.server.de
Um sich mit einem bestimmten Benutzer anzumelden, muss dieser Benutzername und ein @ der PC-Angabe voran gestellt werden. Als root ist sich anzumelden mit:
ssh root@192.168.0.10
OpenSSH ist eine kompatible, freie OpenSource-Implementierung der originalen ssh (Secure Shell).
Man kann damit problemlos telnet, rsh, rcp und andere veraltete und unsichere Dienste ersetzen oder zusätzlich absichern.
Sinn der Sache:
Viele haben zu Hause (oder sonstwo) mehrere Rechner, auf denen ein SSH-Daemon läuft - sei es zur Verwaltung des Rechners oder sonstigem. Jedoch kann es, wenn man sich oft auf den Maschinen einloggen muss, mitunter recht nervig werden, jedesmal das Passwort einzutippen. Der Austausch der Public-Keys schafft hier Abhilfe. Weiterhin verhindert man mit dieser Maßnahme die Brute-Force-Angriffe.
Zurück zum Inhaltsverzeichnis:
Grundsätzliches zu ssh-key
Ein Schlüsselpaar besteht aus einem Privaten (private) Key und einem Öffentlichen (public) Key.
Diese werden ssh-key genannt und werden mittels ssh-keygen generiert.
Die maximale Schlüsselange beträgt 32768 Bit.
RSA oder DSA Schlüssel?
RSA arbeitet über eine Ringcharakteristik,
DSA über einen Körper, was auch immer das heißen mag...
Beide sind heute frei!
Der Nachteil von DSA ist, das seine Keylänge nur bis 1024 Bit spezifiziert ist.
Wenn man also längere Schlüssel benutzen will, muss man RSA benutzen.
Zurück zum Inhaltsverzeichnis:
ssh-keygen unter Linux
Das erstellen unter Linux ist recht einfach (wenn ssh installiert ist).
Der Syntax zum generieren eines Schlüssel ist wie folgt:
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
Dies bedeutetet Beispielhaft das folgender Befehl:
ssh-keygen -b 2048 -t rsa -N MeinePassphrase -C MeinKommentar -f /home/monika/.ssh/monika-key
Ein 2048 bit schlüssel erzeugt,
der Private Schlüssel mittels einem Kennwort (Passphrase) geschützt ist,
mit einem Kommentar (MeinKomenntar) versehenen ist,
und als monika-key in /home/monika/.ssh gespeichert wurde.
Passphrase = ist da damit (bei Fremdbenutzung) dieser mit einer Passwortabfrage geschützt ist.
Kommentar = ist z.B. Sinnvoll damit der Server anhand des Kommentars sauber loggen kann wer was wann gemacht hat.
Zurück zum Inhaltsverzeichnis:
ssh-keygen unter Windows
Was benötigen wir:
1. Man brauchst für die Erstellung der Schlüssel das Putty Tool Puttygen
2. Für das Einfügen des public-key in die authorized_keys dann noch Putty
3. Für die Verwendung des privaten Schlüssels zusammen mit Filezilla wird das Putty-Tool pagent benötigt - (ebenfalls bei den Putty Tools dabei)
4. Für die Verwendung von WinSCP wird pagent nicht benötigt
Download der Putty-Tools:
Erstellen der Schlüssel:
1. Nach dem Start von Puttygen wählt man unter Parameters SSH2 RSA aus und vergibt als Schlüssellänge 2048 bits (siehe Number of bits in a generated key)
2. Anschließend klickt man auf Generate und bewegt die Maus solange, bis die Schlüssel erstellt wurden. Jetzt sieht man in der mehrzeiligen TextBox schon den public key. Der private key muss explizit über den Save private key Button gespeichert werden. Aber bevor dies geschieht, sollten ein aussagekräftiger Kommentar und eine Passphrase vergeben werden. Den Kommentar siehst man dann z.B. in der auth.log und kann damit sofort erkennen, welcher Benutzer auf den Server zugegriffen hat.
Speichert also den private key ab. Den public key dagegen kopiert man nun in die Zwischenablage, um ihn anschließend über Cut & Paste im Putty Fenster in die authorized_keys Datei des Servers einzufügen.
Zurück zum Inhaltsverzeichnis:
Linux ssh-keys nach Windows konvertieren
Wurden SSH-Keys unter Linux mittels ssh-keygen erstellt,
können diese so nicht für einen Windowsclient verwendet werden.
Diese müssen erst mit Puttygen geladen und ins Putty-Format konvertiert werden.
Nun klickt man oben im Menü auf File und ladet hierüber sich die Linux-Key-Datei.
Wurde der Linux-Schlüssel mittels einer passphrase gesichert, muss dieses Kennwort zuerst eingegeben werden.
Danach ist der Linux-Schlüssel erfolgreich importiert
Nun müssen wir diesen wieder als PuTTY-Key speichern, damit man diesen für Winodws nutzen kann.
Ggf. sollte man hier wieder eine "Passphrasse" eingeben um den Schlüssel vor Fremden zugriff zu schützen!
Zurück zum Inhaltsverzeichnis: