Frage Veröffentlichung von id_rsa.pub zur einfacheren Einrichtung neuer Umgebungen?


Um die Einrichtung von passwortlosem SSH für neue Maschinen und Umgebungen zu vereinfachen, gibt es einen Grund, warum id_rsa.pub Datei (nur die öffentliche Hälfte des Schlüsselpaares) konnte nicht irgendwo im Web veröffentlicht werden? Zum Beispiel in einem dotfiles GitHub-Repository.

Ich bin mir bewusst, dass:

  • das id_rsa Datei (die private Hälfte des Schlüsselpaares) muss sorgfältig bewacht werden und
  • Das Schlüsselpaar sollte mit einer Passphrase geschützt werden

Aber meine Recherchen haben keinen expliziten Hinweis darauf ergeben, dass dies erlaubt oder gefördert wird.

Wäre der Ratschlag aus Neugierde für ein Schlüsselpaar ohne Passphrase gültig?


20
2018-03-26 00:31


Ursprung


Während es im allgemeinen Fall sicher sein könnte (unter der Annahme eines korrekt generierten Schlüssels), gab es in der Vergangenheit Fehler (der berühmte Debian OpenSSH-Fehler), die den Schlüsselraum stark einschränkte und den privaten Schlüssel basierend auf dem öffentlichen Schlüssel erraten ließ. Es gibt also immer dieses Risiko - wie geht es dir? kennt dass Ihr SSH Keygen nicht an einem ähnlichen Fehler leidet? - Bob
Ein Mechanismus dafür existiert bereits: SSH-Import-ID - MikeyB
So können Sie id_rsa.pub zwischen Maschinen teilen? - Federico


Antworten:


RSA wurde speziell entwickelt, um Ihnen zu ermöglichen, diesen öffentlichen Schlüssel zu teilen, also ja, Sie können ihn veröffentlichen. Dies ist ziemlich ähnlich wie x.509 (und SSL) mit RSA-Zertifikaten funktioniert.

Bevor Sie die Datei veröffentlichen, sehen Sie sie sich an. Die einzigen Dinge, die drin sein müssen, sind das Schlüsselwort "ssh-rsa" und der base64-codierte Schlüssel. Vielleicht möchten Sie es behalten (ich glaube, das ist jetzt der Standard).

Dies gilt unabhängig davon, ob der Schlüssel eine Passphrase hat oder nicht. Eine Passphrase verschlüsselt den privaten Schlüssel und hat keine Auswirkungen auf den öffentlichen Schlüssel.

Stellen Sie wie immer sicher, dass Ihr Schlüssel ausreichend entropisch und groß ist. Wenn es durch einen gebrochenen PRNG erzeugt wird, könnte es vorhersehbar sein. Allerdings birgt das Veröffentlichen kein großes zusätzliches Risiko, denn wenn der Schlüsselraum so klein ist, könnte ein Angreifer einfach mit allen Schlüsseln im aufgezählten Schlüsselraum versuchen, bis sie den richtigen Schlüsselraum bekommen.

Ich schlage vor, einen 4096-Bit-Schlüssel zu verwenden (angeben -b 4096), so dass es schwieriger als üblich ist (der Standardwert ist 2048), dass jemand seinen öffentlichen Schlüssel in einen privaten umkehrt. Dies ist das einzige signifikante Risiko, und dies ist nicht sehr groß, da der Algorithmus speziell dafür ausgelegt ist, dies unpraktikabel zu machen.


26
2018-03-26 00:56





Das ist es schon. :) Setzen Sie einfach ".keys" am Ende Ihrer Github-Profil-URL, so:

https://github.com/tjmcewan.keys


33
2018-03-26 06:45



Thant ist wirklich interessant. Wofür entlarvt GitHub das? - richardneish
Bequemlichkeit. :) Es ist schließlich ein öffentlicher Schlüssel - es soll geteilt werden. Es ist jetzt viel einfacher, den Schlüssel eines neuen Mitarbeiters zu erfassen und zu Ihren Servern hinzuzufügen. Speichert die Hin-und Her-E-Mail. - tjmcewan
Ich wusste nicht, dass sie das getan haben. - Zeb
+1 für den interessanten Fund auf Github. - Raymond Tau


In der Regel empfehle ich jedoch keine eigene Konfiguration in öffentlichen Projektarchiven (vorausgesetzt, der Repo ist für jeder und deine Konfiguration ist für du allein, es ist nur ein bisschen unhöflich), die Auswirkungen auf die Sicherheit sind minimal.

Der einzige vernünftige Angriffsvektor verwendet irgendwie diesen öffentlichen Schlüssel identifizieren Sie in einem bösartigen Kontext. Was das sein könnte, ist über mich hinaus, aber der öffentliche Schlüssel identifiziert den privaten Schlüssel eindeutig, obwohl er keine Hinweise auf seinen Ursprung gibt.

Es gibt einen Eckfallangriffsvektor, der wahrscheinlich nicht zutrifft, aber wenn du dich an das Fiasko erinnern wirst Debian hat versehentlich die openssl PRNG geknacktJeder ssh-Schlüssel, der auf einem betroffenen System generiert wird, ist leicht vorhersehbar und kann anhand seines öffentlichen Schlüssels identifiziert werden. Also rein Das Fall könnte die Veröffentlichung des öffentlichen Schlüssels Sie in Schwierigkeiten bringen. Oder angemessener, Verwenden Sie diesen Schlüssel für alles könnte dich in Schwierigkeiten bringen.


5
2018-03-26 01:11



Vektor 1. Wie wäre es mit Fingerabdruck Kollision? es ist viel kürzer als der öffentliche Schlüssel selbst; vector 2 mim attack wie "oops server musste neu installiert werden, hat einen anderen schlüssel, aber bitte loggen sie sich trotzdem ein" und fälschen erfolgreiche authentifizierung für gegebene benutzer öffentliche schlüssel (wenn das möglich ist, bin ich mir nicht sicher)


Ja, Sie können Ihren SSH-Pubkey veröffentlichen. Und Sie können einen Fingerabdruck des Servers mit der SSHFP-Aufzeichnung in DNS! Dies kann zum Beispiel sehr handlich sein, wenn Sie den SSH-Schlüssel eines Servers aktualisieren / ändern müssen.


1
2018-03-26 23:18