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

20

Gibt es einen Grund, warum die id_rsa.pubDatei (nur die öffentliche Hälfte des Schlüsselpaars) nicht irgendwo im Web veröffentlicht werden konnte, um die Einrichtung von passwortfreiem SSH auf neuen Computern und Umgebungen zu vereinfachen ? Zum Beispiel in einem dotfiles GitHub-Repository.

Mir ist bewusst, dass:

  • die id_rsadatei (die private hälfte des schlüsselpaares) muss sorgfältig gehütet werden und
  • Das Schlüsselpaar sollte mit einer Passphrase geschützt werden

Meine Recherchen haben jedoch keinen ausdrücklichen Hinweis ergeben, dass dies zulässig ist oder empfohlen wird.

Würde derselbe Rat aus Neugier für ein Schlüsselpaar ohne Passphrase gelten?

DouglasDD
quelle
2
Während es im allgemeinen Fall sicher sein könnte (vorausgesetzt, ein ordnungsgemäß generierter Schlüssel ist vorhanden), gab es in der Vergangenheit Fehler (den berühmten Debian OpenSSH-Fehler ), die den Schlüsselbereich stark einschränkten und den privaten Schlüssel basierend auf dem öffentlichen Schlüssel erraten ließen. Das Risiko besteht also immer - woher wissen Sie , dass Ihr SSH-Keygen nicht unter einem ähnlichen Fehler leidet?
Bob
2
Ein Mechanismus dafür existiert bereits: ssh-import-id
MikeyB
So können Sie id_rsa.pub zwischen Maschinen teilen?
Federico

Antworten:

26

RSA wurde speziell entwickelt, um Ihnen die Freigabe dieses öffentlichen Schlüssels zu ermöglichen. Sie können ihn also veröffentlichen. Dies ist vergleichbar mit der Funktionsweise von x.509 (und SSL) mit RSA-Zertifikaten.

Sehen Sie sich die Datei an, bevor Sie sie veröffentlichen. Die einzigen Dinge, die drin sein müssen, sind das Schlüsselwort "ssh-rsa" und der base64-codierte Schlüssel. Vielleicht möchten Sie daran festhalten (ich glaube, dies ist jetzt die Standardeinstellung).

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

Stellen Sie wie immer sicher, dass Ihr Schlüssel ausreichend entropisch und groß ist. Wenn es von einem defekten PRNG erzeugt wird, ist es möglicherweise vorhersehbar. Das Veröffentlichen dieser Datei birgt jedoch nicht viel zusätzliches Risiko, da ein Angreifer bei einem so kleinen Schlüsselbereich einfach alle Schlüssel im aufgezählten Schlüsselbereich ausprobieren könnte, bis er den richtigen erhält.

Ich empfehle die Verwendung eines 4096-Bit-Schlüssels (angeben -b 4096), damit es schwieriger als üblich ist (der Standardwert ist 2048), Ihren öffentlichen Schlüssel in einen privaten Schlüssel umzuwandeln. Dies ist das einzige signifikante Risiko, und es ist nicht sehr groß, da der Algorithmus speziell dafür ausgelegt ist, es unpraktisch zu machen.

Falcon Momot
quelle
33

Ist es schon. :) Setzen Sie einfach ".keys" an das Ende Ihrer Github-Profil-URL:

https://github.com/tjmcewan.keys

tjmcewan
quelle
Das ist wirklich interessant. Wofür stellt GitHub dies zur Verfügung?
Richardneish
Bequemlichkeit. :) Es ist immerhin ein öffentlicher Schlüssel - er 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
Mir war nicht klar, dass sie das taten.
Zeb
1
+1 für die interessante Entdeckung auf Github.
Raymond Tau
5

Während ich in der Regel nicht empfehle, Ihre eigene spezifische Konfiguration in öffentliche Projekt-Repositorys zu stellen (vorausgesetzt, das Repo ist für alle und Ihre Konfiguration ist für Sie allein , es ist nur ein wenig unhöflich), sind die Sicherheitsauswirkungen minimal.

Der einzig vernünftige Angriffsvektor ist die Verwendung dieses öffentlichen Schlüssels, um Sie in einem böswilligen Kontext zu identifizieren . Was das sein könnte, ist mir ein Rätsel, aber der öffentliche Schlüssel identifiziert den privaten Schlüssel eindeutig, obwohl er keine Hinweise auf seine Herkunft gibt.

Es gibt einen Eckfall-Angriffsvektor, der wahrscheinlich nicht zutrifft, aber wenn Sie sich an das Fiasko erinnern, dass Debian versehentlich das PRNG von openssl gebrochen hat , ist jeder auf einem betroffenen System generierte SSH-Schlüssel leicht vorhersehbar und kann anhand seines öffentlichen Schlüssels identifiziert werden. In diesem Fall kann das Veröffentlichen des öffentlichen Schlüssels zu Problemen führen. Oder passender, wenn Sie diesen Schlüssel für irgendetwas verwenden, könnten Sie in Schwierigkeiten geraten.

tylerl
quelle
Vektor 1. Wie wäre es mit einer Kollision von Fingerabdrücken? es ist viel kürzer als der öffentliche Schlüssel selbst; vektor 2 mim angriff wie "oops server musste neu installiert werden es hat einen anderen schlüssel, aber bitte trotzdem anmelden" und gefälschte erfolgreiche authentifizierung für einen bestimmten benutzer öffentliche
1

Ja, Sie können Ihren SSH-Pubkey veröffentlichen. Und Sie können einen Fingerabdruck des Servers mithilfe des SSHFP-Eintrags in DNS veröffentlichen! Dies kann sehr praktisch sein, wenn Sie beispielsweise den SSH-Schlüssel eines Servers aktualisieren / ändern müssen.

Jldugger
quelle