Mit Puttygen.exe ein RSA Schlüsselpaar erstellen

    • Mit Puttygen.exe ein RSA Schlüsselpaar erstellen

      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

      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.
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Fred Bogus Trumper ()