OpenSSH Public-Private-Key

Aus Gemini-Wiki
Wechseln zu: Navigation, Suche

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.


Erstellung von Schlüßeln mit Puttygen (selbstverständlich verwende ich nicht diesen Schlüssel)


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.

Start von Puttygen

Nun klickt man oben im Menü auf File und ladet hierüber sich die Linux-Key-Datei.

Wichtig ist das man bei Dateity auf (all files) umstellt!


Wurde der Linux-Schlüssel mittels einer passphrase gesichert, muss dieses Kennwort zuerst eingegeben werden.

Abfrage der Passphrasse!
Erfolgreiche Eingabe der Passphrasse!

Danach ist der Linux-Schlüssel erfolgreich importiert

Erfolgreicher Import eines Linux-Schlüssels

Nun müssen wir diesen wieder als PuTTY-Key speichern, damit man diesen für Winodws nutzen kann.

Speichern eines Linux-Schlüssels nach PuTTY-Format


Ggf. sollte man hier wieder eine "Passphrasse" eingeben um den Schlüssel vor Fremden zugriff zu schützen!


Zurück zum Inhaltsverzeichnis:


externe Links