SSH Formate, Keys, Dateien => Ich verstehe es nicht

TitoP

Ensign
Registriert
Okt. 2016
Beiträge
249
Hallo zusammen!

Ich möchte hier mal um Hilfe bitten, da ich diese ganze "SSH-Geschichte" mit den entsprechenden Formaten, Dateien und Programmen beim besten Willen nicht checke. Jede weitere Google Suche hinterlässt mehr Fragezeichen. Und bevor ich mich aus meinem Staubsaugerroboter aussperre, möchte ich es gerne verstehen und richtig machen.

Aktueller Zustand:
  • Veraltetes Valetudo RE von Anfang 2021 auf einem Mi Vacuum Gen 1
  • Kein SSH Schlüssel hinterlegt, aber noch die Möglichkeit einen SSH-Schlüssel hochzuladen.
Ziel:
  • Ein SSH-Schlüsselpaar erstellen, im korrekten Format hochladen und Windows-Putty bzw. Android-JuiceSSH Zugriff konfigurieren.
  • Anschließend Robbi mit aktuellem originalen Valetudo neu flashen und in Home Assistant einbinden.

Was ich bislange gemacht habe:

Da ich sichergehen wollte, mit einem definitiv korrekten Schlüsselpaar zu arbeiten, habe ich mir über Dustbuilder ein Keypair erstellen lassen. Zusammen mit dem Image habe ich dieses in Form von zwei Dateien erhalten, einer *.ppk Datei und einer *.id_rsa Datei. Das Image ist im ersten Schritt nur "Beiwerk", erstmal möchte ich den SSH Zugriff auf dem bestehenden alten Valetudo RE einrichten.

Beide Dateien kann ich mit dem Windows Texteditor öffnen. Die PPK-Datei scheint beide Schlüssel, sowohl den öffentlichen als auch den privaten, zu enthalten. Der öffentliche Key scheint der zu sein, der die Überschrift "Public-Lines: 9" hat. Darunter steht vermutlich der private Key nach "Private-Lines: 21".

Die ID_RSA Datei enthält anscheinend nur den OPENSSH Private-Key, zumindest steht das in der Datei. Der dort angezeigte Key ist aber wiederum nicht der gleiche wie die "Private-Lines: 21" in der PPK-Datei. Welcher private Key ist da denn nun der Richtige?

In der Weboberfläche meiner alten Valetudo RE Installation muss ich nun einen Public Key hochladen. Vermutlich sind dies die "Public-Lines: 9" aus der PPK-Datei. Hier verwirrt mich aber, dass der Key angeblich mit "ssh-rsa" beginnen soll. Das tut er aber nicht!?

Wenn ich nun das Problem gelöst habe, stünde ich vor dem zweiten Problem. Wenn ich nun nämlich mal alles eingerichtet habe und ein Update anstände, so würde ich natürlich das bestehende Keypair weiter nutzen wollen. Dustbuilder bietet an, dass ich einen public-key in ein Imagebuild einbinden lassen kann. Die auf der Seite vorhandene Hilfe sagt mir:

Ich muss also einen Key im RSA-Format als Datei bereitstellen. Aber sowas habe ich doch gar nicht? Nicht einmal Dustbuilder selbst hat mir ein entsprechendes Format bereitgestellt? Der einzige Public Key steht doch in der PPK-Datei. Aber da steht doch gleichzeitig auch der Private Key drin? Welche Datei müsste ich da denn hochladen? Wenn ich nach "ssh rsa" googele, dann finde ich heraus, dass es auch id_rsa.pub Dateien gibt. Aber eine Pub-Datei habe ich nicht.

Sorry für den Riesen-Roman und meine Verwirrung, aber ich drehe mich total im Kreis und verstehe nur Bahnhof. Kann mir jemand erklären, welche Schritte ich genau befolgen muss? Oder kann mir wer vielleicht nen Link zu nem guten Tutorial geben.
 
Viel Text, stimmt. Hast du denn einfach mal so aus Spaß in der Suchmaschine deiner Wahl nach "ssh ppk" und/oder "ssh id_rsa" gesucht? Bei mir kam da mit als erster Treffer z.B. die Seite hier:
- https://www.baeldung.com/linux/ssh-key-types-convert-ppk

Ganz kurz:
  • ppk: putty key format
  • "id_rsa": openssh format

Mit den richtigen Tools kannst du bequem beides ineinander umwandeln. Wichtig ist in jedem Fall nur, dass du den privaten Schlüssel hast. Daraus lässt sich im Zweifel der öffentlich wieder ableiten. Wenn du das andersherum schaffst, bekommst du nen Nobelpreis ;)
 
  • Gefällt mir
Reaktionen: TitoP
TitoP schrieb:
Die ID_RSA Datei enthält anscheinend nur den OPENSSH Private-Key, zumindest steht das in der Datei. Der dort angezeigte Key ist aber wiederum nicht der gleiche wie die "Private-Lines: 21" in der PPK-Datei. Welcher private Key ist da denn nun der Richtige?
In beiden Dateien sollte der gleiche private Key sein. Sie haben aber unterschiedliche Formate und der Key ist zudem verschlüsselt.

TitoP schrieb:
In der Weboberfläche meiner alten Valetudo RE Installation muss ich nun einen Public Key hochladen. Vermutlich sind dies die "Public-Lines: 9" aus der PPK-Datei. Hier verwirrt mich aber, dass der Key angeblich mit "ssh-rsa" beginnen soll. Das tut er aber nicht!?
Installier Putty und öffne die PPK-Datei mit dem enthaltenen Programm PuTTYgen. Dort wird dann oben der Public Key (beginnend mit "ssh-") angezeigt.
Außersicherheitsgründen empfiehlt sich aber immer mit "Generate" ein komplett neue Key-Pair zu erzeugen, statt das es von einer unbekannten Quelle erzeugen zu lassen. Nur so lässt sich der Sicherheitsvorteil von Public-/Private-Kryptographie nutzen.

TitoP schrieb:
Wenn ich nun das Problem gelöst habe, stünde ich vor dem zweiten Problem. Wenn ich nun nämlich mal alles eingerichtet habe und ein Update anstände, so würde ich natürlich das bestehende Keypair weiter nutzen wollen. Dustbuilder bietet an, dass ich einen public-key in ein Imagebuild einbinden lassen kann.
Ich kenne Dustbuilder nicht aber da die Webseite explizit die "authorized_keys"-Datei erwähnt erwartet es wahrscheinlich eine Datei in diesem Format. Das ist einfach eine Textdatei in der die oben erwähnte Public-Key-Zeile aus PuTTYgen steht.
 
  • Gefällt mir
Reaktionen: TitoP
  • Gefällt mir
Reaktionen: TitoP
Ok, ich fasse mal für mich zusammen:

@KillerCow Beide Dateien sind letztlich der gleiche Key in unterschiedlichen Formaten. Wenn ich mir beide Keys sichere, dann kann ich mit den Dateien immer wieder unterschiedliche Formate der Keys erzeugen und allen Anforderungen gerecht werden? Und das in der id_rsa halt nur der private drinsteht ist ok, weil ich damit auch den öffentlichen erzeugen kann?

@TheCadillacMan Ob in beiden Dateien der gleiche Key drin ist kann ich nicht beurteilen. Der gleiche Key in unterschiedlichen Formaten führt dann vermutlich dazu, dass die Zeichenfolgen trotz "Gleichheit" der Keys unterschiedlich sind?

Das ist einfach eine Textdatei in der die oben erwähnte Public-Key-Zeile aus PuTTYgen steht.

ssh.JPG


Ich würde also einfach den Key aus Putty, der mit "ssh-" beginnt per Windows Editor als Textdatei abspeichern?

@Evil E-Lex Ja, der Public Key ist in dem erzeugten Image. Ich möchte mir SSH aber erstmal in der bestehenden Installation auf dem Robbi einrichten. Und die hat bislang keinen SSH-Zugriff.
 
TitoP schrieb:
Wenn ich mir beide Keys sichere, dann kann ich mit den Dateien immer wieder unterschiedliche Formate der Keys erzeugen und allen Anforderungen gerecht werden?
Andere Formate wirst du kaum brauchen, aber ja, wenn du dir einfach beide sicherst, wirst du immer irgendwie die Keys benutzen können, vermutlich auch ohne Umwandlung.
Theoretisch kannst du dir auch den öffentlichen Schlüssel einmal im openssh-Format ablegen, dann brauchst du ihn nicht immer wieder generieren. Weil den öffentlichen Schlüssel überträgst du ja an das Zielsystem. Der private Schlüssel bleibt privat! Als Tool dazu gibts viele Möglichkeiten. puttygen wäre eine Möglichkeit.
 
  • Gefällt mir
Reaktionen: TitoP
Danke für eure Hilfe, mit dem selbst generierten Schlüssel war es relativ easy möglich. Ich habe auch hier noch folgende Beschreibung der Vorgehensweise gefunden:

  1. Install Putty
  2. Start Puttygen
  3. Generate a RSA Key
  4. Save the private key
  5. Copy the Public Key (Not save public key)
  6. Paste the Public Key via Webfront into your Valetudo Settings
  7. Close Puttgen
  8. Open the Private Key File (this will put the key into Putty Pageant)
  9. Open Putty
  10. Enter IP Address and connect (in the default settings Putty will use keys stored in Pageant)
  11. Enter login name root
  12. Connection should be successful via key

Jetzt stelle ich mir nur noch folgende Frage:

Screenshot 2023-10-05 201653.png


Ich habe in die Weboberfläche meines Saugers den SSH Key eingefügt, den man direkt aus der GUI von Puttygen kopieren konnte (Der untere Teil des Screenshots). Dieser Key beginnt mit "ssh-rsa" und endet hinter dem == mit dem "Key comment". Diese Bestandteile finde ich in der Datei vom "Save public key" nicht (Der obere Teil vom Screenshot).

Die Verbindung hat wohl trotzdem geklappt. Aber wenn ich jetzt mal meinen öffentlichen Key im Dustbuilder hochladen möchte, muss es dann der mit "ssh-rsa" und "Key comment" sein? Oder der ohne aus dem Vorgang "Save public key"?
 
TitoP schrieb:
Und das in der id_rsa halt nur der private drinsteht ist ok, weil ich damit auch den öffentlichen erzeugen kann?
Ja, denn der Public Key wird vom Private Key abgeleitet.

TitoP schrieb:
Der gleiche Key in unterschiedlichen Formaten führt dann vermutlich dazu, dass die Zeichenfolgen trotz "Gleichheit" der Keys unterschiedlich sind?
Das liegt schon an der unterschiedlichen Verschlüsselung des Keys im PPK- und OPENSSH-Format.

TitoP schrieb:
Ich würde also einfach den Key aus Putty, der mit "ssh-" beginnt per Windows Editor als Textdatei abspeichern?
Genau.
 
  • Gefällt mir
Reaktionen: TitoP
Zurück
Oben