Kurzanleitung:
Mit Puttygen.exe ein RSA Schlüsselpaar erstellen
puttygen.exe wird überlicherweise mit putty.exe mit installiert, sonst findet man es <hier>
Schlüsseltyp RSA (1) auswäheln, Anzahl der bits (2) ist default 2048 (empfohlen) - je höher die bits desto länger der Schlüssel
Mit Generate (3) erstellen. Während der Erstellung mit dem Mauszeiger im Fenster kreisen um die Zufälligkeit zu erhöhen - zudem wird er Schlüssel so schneller erstellt
Wenn der Schüssel erstellt wurde sieht das so aus:
im oberen Bereich findet man den öffentlichen Schlüssel (4), dieser muss auf den ssh Server kopiert werden,der Key Commend (5) wird automatisch erstellt und ist Teil des Schlüssels, kann aber geändert werden (6)
die Änderung wird automatisch im Public key übernommen
Dann speichert man den Private Key am PC mit dem wir uns auf den SSH Sever verbinden. Diese wird später in den Putty Einstellungen hinterlegt
Hier kommt dann die Frage, ob man den Key ohne Passwort speichern will. Wir beantworten die Frage mit Ja, weil wir uns ja ohne Passwort mit einem Klick anmelden möchten. Der Zugriff ohne RSA Key ist jedoch weiterhin nur mit dem Dreambox Passwort möglich. Wenn man die Box von extern über SSH erreichbar machen will ist ein RSA Key Passwort zu empfehlen. Besser ist jedoch einen SSH Server mit aktueller SHA-1 Verschlüsselung als Jumpserver vorzuschalten, die mittlerweisle als unsicher eingestufte RSA Verschlüssel wird z,B. von openssh nicht mehr untertützt bzw. nur über Umwege
Aber für die Verwendung im Heimntz tuts RSA auch noch
ich benenne den Private Key "puttykey", die Dateiendung .ppk ist vorgegeben
Dann speichert man noch den öffentlichlichen Schlüssel in eine Textdatei, damit den Schlüssel später auch auf einem anderen SSH Server hinterlegen kann - ich nehme die Dateiendung .pub (ist frei wählbar)
Public Key auf die Box übertragen
Als nächstes muss der Public Key auf die Box übertragen werden. Dazu hat man mehre Möglichkeiten. Solange das puttyge.exe Fenst offen ist, kann man den Public Key mit der Copy und Paste Variante übertragen
Als erstes prüft man mer ssh/telnet/ftp ob der Ordner /root/.ssh existiert. Falls nicht muss dieser mit Rechten 600 erstellt werden
mkdir -p /root/.ssh
chmod 600 /root/.ssh
Dann erstellt man die Datei /root/.ssh/authorized_keys
touch /root/.ssh/authorized_keys
Variante A
Nun kann man aus dem puttygen.exe Fenster den Public Key kopieren und per FTP (Filezilla, DCC etc.) in die Datei einfügen. Es muss ein LInuxkonformer Editor verwendet werden (notepad++ etc.)
Variante B
Will man später den Public Key auf einen anderen Server übertragen, muss man den Key aus der gepeicherten puttykey.pub übertragen. Der von puttygen.exe erstellte puplic Key enthält allerdings Zeilenumbrüche und Kommentare, und es fehlt der Hinweis für die Verschlüsselungsmethode und der comment - die Datei bzw. dessen Inhalt kann man so nicht einfach in die authorized_keys übertragen:
Man kann den Key unter Windows mit einem Linux konformen Editor bearbeiten, d.h. die Zeilenzumbrüche entfernen, die Verschlüsselungsmethode ssh-rsa dem key voran und den Comment hinten anstellen, das ist aber fehleranfällig und man muss die Syntax für den key kennen.
Wir gehen den einfachen, automatisierten Weg über die Linux shell auf der Box
Als erstes schiebt man die puttykey.pub per FTP auf die Box - am besten nach /tmp
Dann wandelt man die Datei in in Linuxkonformes Format um
dos2unix /tmp/puttykey.pub
Dann liest man den Comment aus der Datei in eine Variable
comment=$(grep Comment /tmp/puttykey.pub | awk -F \" '{print $2}')
mit echo $comment kann man prüfen, ob der Comment richt ausgelesen wurde
Mit folgenden Befehl wird aus der Datei /tmp/puttykey.pub der gültige rsa key erstellt (Zeillenumbrüche werden entfert, Verschlüsseungsmethode und Comment an der richtigen Stelle eingefügt) und in die Datei /root/.ssh/authorized_keys eingefügt.
Achtung:
mit > /root/.ssh/authorized_keys wird die Datei authorized_keys überschrieben
mit >> /root/.ssh/authorized_keys wird der key am Ende der Datei hinzugefügt. Diesen Ausgabebefehl sollt man verwenden, wenn bereits ein public key in der authorized_keys hinterlegt ist, damit dieser nicht überschrieben wird - es empfielt sich eine Sicherungskopie zu erstellen, wenn man bereits public keys hinterlegt hat
in beiden Fällen wird die Datei erzeugt, falls sie nicht existiert
mit cat kann man sich dann den Unterschied der beiden Dateien ansehen
putty.exe konfigurien
Jetzt noch putty.exe konfigurieren - also ein Profil erstellen
Als erstes öffnet man eine neue Session und gibt die IP der Box ein (1), Connection Type SSH (2) und den Port 22 für SSH (3)
Dann wechselt man in den Bereich Window/Behavier und gibt einen Namen für das Profil/den Host an (4) - praktisch wenn man mehrere putty Sessions gleichzeitig offen hat, dann sieht man am Window Title auf welchen Server man verbunden ist
Dann wechlselt man nach Connection/Data und gibt den Usernamen (5) an, mit dem sich putty anmelden soll
Im Bereich Connection/SSH/Auth hinterlegt man den zuvor erstellen RSA Private Key
Dann wechlselt man noch einmal zurück auf Session und gibt den gewünschte Profilnamen an und speichert das ganze ab
Dann einfach auf den Profilnamen doppelklicken und man wird ohne user password aber denoch abgesichert verbunden wenn man zuvor alles richtig gemacht hat
Wenn man richtig paranoid ist, kann man noch den telnet daemon auf der Box deaktivieren, den dropbear ssh und den vsftp server so konfigieren, das man sich nur mit dem Private key über ssh oder sftp verbinden kann. Ohne Key wird jeder Verbindungsversuch rejected.
Mit Puttygen.exe ein RSA Schlüsselpaar erstellen
puttygen.exe wird überlicherweise mit putty.exe mit installiert, sonst findet man es <hier>
Schlüsseltyp RSA (1) auswäheln, Anzahl der bits (2) ist default 2048 (empfohlen) - je höher die bits desto länger der Schlüssel
Mit Generate (3) erstellen. Während der Erstellung mit dem Mauszeiger im Fenster kreisen um die Zufälligkeit zu erhöhen - zudem wird er Schlüssel so schneller erstellt
Wenn der Schüssel erstellt wurde sieht das so aus:
im oberen Bereich findet man den öffentlichen Schlüssel (4), dieser muss auf den ssh Server kopiert werden,der Key Commend (5) wird automatisch erstellt und ist Teil des Schlüssels, kann aber geändert werden (6)
die Änderung wird automatisch im Public key übernommen
Dann speichert man den Private Key am PC mit dem wir uns auf den SSH Sever verbinden. Diese wird später in den Putty Einstellungen hinterlegt
Hier kommt dann die Frage, ob man den Key ohne Passwort speichern will. Wir beantworten die Frage mit Ja, weil wir uns ja ohne Passwort mit einem Klick anmelden möchten. Der Zugriff ohne RSA Key ist jedoch weiterhin nur mit dem Dreambox Passwort möglich. Wenn man die Box von extern über SSH erreichbar machen will ist ein RSA Key Passwort zu empfehlen. Besser ist jedoch einen SSH Server mit aktueller SHA-1 Verschlüsselung als Jumpserver vorzuschalten, die mittlerweisle als unsicher eingestufte RSA Verschlüssel wird z,B. von openssh nicht mehr untertützt bzw. nur über Umwege
Aber für die Verwendung im Heimntz tuts RSA auch noch
ich benenne den Private Key "puttykey", die Dateiendung .ppk ist vorgegeben
Dann speichert man noch den öffentlichlichen Schlüssel in eine Textdatei, damit den Schlüssel später auch auf einem anderen SSH Server hinterlegen kann - ich nehme die Dateiendung .pub (ist frei wählbar)
Public Key auf die Box übertragen
Als nächstes muss der Public Key auf die Box übertragen werden. Dazu hat man mehre Möglichkeiten. Solange das puttyge.exe Fenst offen ist, kann man den Public Key mit der Copy und Paste Variante übertragen
Als erstes prüft man mer ssh/telnet/ftp ob der Ordner /root/.ssh existiert. Falls nicht muss dieser mit Rechten 600 erstellt werden
mkdir -p /root/.ssh
chmod 600 /root/.ssh
Dann erstellt man die Datei /root/.ssh/authorized_keys
touch /root/.ssh/authorized_keys
Variante A
Nun kann man aus dem puttygen.exe Fenster den Public Key kopieren und per FTP (Filezilla, DCC etc.) in die Datei einfügen. Es muss ein LInuxkonformer Editor verwendet werden (notepad++ etc.)
Variante B
Will man später den Public Key auf einen anderen Server übertragen, muss man den Key aus der gepeicherten puttykey.pub übertragen. Der von puttygen.exe erstellte puplic Key enthält allerdings Zeilenumbrüche und Kommentare, und es fehlt der Hinweis für die Verschlüsselungsmethode und der comment - die Datei bzw. dessen Inhalt kann man so nicht einfach in die authorized_keys übertragen:
Man kann den Key unter Windows mit einem Linux konformen Editor bearbeiten, d.h. die Zeilenzumbrüche entfernen, die Verschlüsselungsmethode ssh-rsa dem key voran und den Comment hinten anstellen, das ist aber fehleranfällig und man muss die Syntax für den key kennen.
Wir gehen den einfachen, automatisierten Weg über die Linux shell auf der Box
Als erstes schiebt man die puttykey.pub per FTP auf die Box - am besten nach /tmp
Dann wandelt man die Datei in in Linuxkonformes Format um
dos2unix /tmp/puttykey.pub
Dann liest man den Comment aus der Datei in eine Variable
comment=$(grep Comment /tmp/puttykey.pub | awk -F \" '{print $2}')
mit echo $comment kann man prüfen, ob der Comment richt ausgelesen wurde
Mit folgenden Befehl wird aus der Datei /tmp/puttykey.pub der gültige rsa key erstellt (Zeillenumbrüche werden entfert, Verschlüsseungsmethode und Comment an der richtigen Stelle eingefügt) und in die Datei /root/.ssh/authorized_keys eingefügt.
Achtung:
mit > /root/.ssh/authorized_keys wird die Datei authorized_keys überschrieben
mit >> /root/.ssh/authorized_keys wird der key am Ende der Datei hinzugefügt. Diesen Ausgabebefehl sollt man verwenden, wenn bereits ein public key in der authorized_keys hinterlegt ist, damit dieser nicht überschrieben wird - es empfielt sich eine Sicherungskopie zu erstellen, wenn man bereits public keys hinterlegt hat
in beiden Fällen wird die Datei erzeugt, falls sie nicht existiert
echo "ssh-rsa $(grep -v "\-\|Comment" /tmp/puttykey.pub | sed ':a;N;$!ba;s/\n//g') $comment" >> ~/.ssh/authorized_keys
mit cat kann man sich dann den Unterschied der beiden Dateien ansehen
putty.exe konfigurien
Jetzt noch putty.exe konfigurieren - also ein Profil erstellen
Als erstes öffnet man eine neue Session und gibt die IP der Box ein (1), Connection Type SSH (2) und den Port 22 für SSH (3)
Dann wechselt man in den Bereich Window/Behavier und gibt einen Namen für das Profil/den Host an (4) - praktisch wenn man mehrere putty Sessions gleichzeitig offen hat, dann sieht man am Window Title auf welchen Server man verbunden ist
Dann wechlselt man nach Connection/Data und gibt den Usernamen (5) an, mit dem sich putty anmelden soll
Im Bereich Connection/SSH/Auth hinterlegt man den zuvor erstellen RSA Private Key
Dann wechlselt man noch einmal zurück auf Session und gibt den gewünschte Profilnamen an und speichert das ganze ab
Dann einfach auf den Profilnamen doppelklicken und man wird ohne user password aber denoch abgesichert verbunden wenn man zuvor alles richtig gemacht hat
Wenn man richtig paranoid ist, kann man noch den telnet daemon auf der Box deaktivieren, den dropbear ssh und den vsftp server so konfigieren, das man sich nur mit dem Private key über ssh oder sftp verbinden kann. Ohne Key wird jeder Verbindungsversuch rejected.
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Fred Bogus Trumper ()