Ist es in Ordnung, eine private Schlüsseldatei für mehrere Computer / Dienste freizugeben?

110

Wir alle wissen also, wie man öffentliche / private Schlüssel mit SSH usw. verwendet. Aber wie kann man sie am besten verwenden / wiederverwenden? Soll ich sie für immer an einem sicheren Ort aufbewahren? Ich brauchte ein Schlüsselpaar, um auf GitHub zugreifen zu können. Ich habe ein Paar von Grund auf neu erstellt und für einige Zeit verwendet, um auf GitHub zuzugreifen. Dann habe ich meine Festplatte formatiert und dieses Paar verloren. Ich habe ein neues Paar erstellt und GitHub so konfiguriert, dass es mein neues Paar verwendet. Oder ist es etwas, das ich nicht verlieren möchte?

Ich benötigte auch ein Paar öffentlicher / privater Schlüssel, um auf unsere Unternehmenssysteme zuzugreifen. Unser Administrator hat mich nach meinem öffentlichen Schlüssel gefragt und ich habe ein neues Paar generiert und es ihm gegeben. Ist es im Allgemeinen besser, ein neues Paar für den Zugriff auf verschiedene Systeme zu erstellen, oder ist es besser, ein Paar zu haben und es für den Zugriff auf verschiedene Systeme erneut zu verwenden? Ebenso ist es besser, zwei verschiedene Paare zu erstellen und eines zu verwenden, um von zu Hause aus auf die Systeme unseres Unternehmens zuzugreifen, und das andere, um von der Arbeit aus auf die Systeme zuzugreifen, oder ist es besser, nur ein Paar zu haben und es von beiden Orten aus zu verwenden?

Behrang
quelle
Dies ist keine direkte Antwort auf Ihre Frage, aber es ist ratsam, auch Passphrasen für jeden Schlüssel zu haben. Im Idealfall separate Passphrasen für jeden Schlüssel (verwenden Sie einen Passwort-Manager). Der Grund ist folgender: Wenn ein privater Schlüssel kompromittiert wurde (Laptop wurde gestohlen, Computer wurde gehackt), haben Sie einige Zeit, bevor der Schlüssel brachial erzwungen werden kann, und Sie können den öffentlichen Schlüssel auf allen Computern ersetzen, auf denen er vorhanden ist , bevor dein Angreifer kann. Quelle: help.ubuntu.com/community/SSH/OpenSSH/…
Xandor Schiefer

Antworten:

86

Sie sollten auf jeden Fall separate private Schlüssel pro Ursprung haben . Grundsätzlich bedeutet dies, dass im Allgemeinen eine einzige Kopie jedes privaten Schlüssels vorhanden sein sollte (ohne Backups). Es ist in Ordnung, denselben privaten Schlüssel von einem eng verwandten Computer zu verwenden, wenn Sie durch das Aufbrechen eines Schlüssels im Grunde genommen auf den anderen zugreifen können (z. B. wenn sie sich in einem anderen befinden shosts.equiv). Verwenden Sie nicht denselben privaten Schlüssel auf Computern in verschiedenen Bereichen (z. B. zu Hause und bei der Arbeit), teilen Sie niemals einen privaten Schlüssel zwischen zwei Benutzern und teilen Sie niemals einen privaten Schlüssel zwischen einem Laptop und einem anderen Computer.

Meistens sehe ich keinen Sinn darin, unterschiedliche private Schlüssel für unterschiedliche Ziele zu haben. Wenn ein privater Schlüssel kompromittiert wird, werden mit Sicherheit auch alle anderen privaten Schlüssel, die in demselben Verzeichnis gespeichert sind, kompromittiert, sodass die Sicherheit nicht weiter beeinträchtigt wird.

Wenn Sie diesen Grundsätzen folgen, identifiziert jedes Schlüsselpaar ein (Computer-, Benutzer-) Paar, wodurch die Berechtigungsverwaltung vereinfacht wird.

Ich kann mir zwei Ausnahmen von der allgemeinen Regel eines einzelnen privaten Schlüssels pro Ursprung vorstellen:

  • Wenn Sie einen kennwortlosen Schlüssel haben, der nur Zugriff auf einen bestimmten Befehl auf einem bestimmten Computer gewährt (z. B. eine automatische Sicherung oder einen Benachrichtigungsmechanismus), muss sich dieser Schlüssel vom allgemeinen Shell-Zugriffsschlüssel unterscheiden.
  • Wenn einige Computer zeitweise verbunden sind, verfügen Sie möglicherweise neben einem neuen privaten Schlüssel über einen alten privaten Schlüssel, bis Sie die Bereitstellung des neuen Schlüssels abgeschlossen haben.
Gilles
quelle
5
So habe ich mein Schlüsselpaar immer benutzt. Ich habe nicht verstanden, warum GitHub befürwortet, ein neues Schlüsselpaar in ihren Setup-Anweisungen zu generieren. Ich habe das ignoriert und mein Standard-Schlüsselpaar verwendet. Ich gehe davon aus, dass sie konservativ sind.
Toolbear74
Ok, Sie sagen also "Verwenden Sie nicht denselben privaten Schlüssel auf Computern in verschiedenen Bereichen", aber was ist, wenn DNS einen bestimmten Hostnamen abhängig von Ihrem Standort auf einen der beiden Computer auflöst? Ohne Freigabe des privaten Schlüssels erhalte ich Warnungen oder Fehler, wenn ich versuche, mit diesem Hostnamen ssh oder rsync auszuführen, da ssh verwirrt wird, wenn zwei separate Schlüssel für denselben Hostnamen vorhanden sind.
Michael
@Michael Ich verstehe nicht, welches Problem Sie in dem von Ihnen beschriebenen Szenario mit Benutzerschlüsseln haben könnten. Darum geht es in diesem Thread. SSH würde verwirrt über Host - Schlüssel, aber als Benutzer , was Sie sehen , ist der öffentliche Schlüssel des Host, nicht der private Schlüssel des Host, und die gemeinsame Nutzung eines privaten Schlüssels des Host gefährlich ist - ich würde nur empfehlen, wenn die Gastgeber sind völlig gleichwertig (Redundanz falls einer von ihnen versagt) und wahrscheinlich auch dann nicht.
Gilles
Ach ja ok Es scheint, als gäbe es nicht viele klare Unterschiede zwischen den beiden, und es wird nur angenommen, dass Sie wissen, über welches gesprochen wird.
Michael
1
@JSBach Mit separaten Schlüsseln pro Bereich können Sie differenziertere Berechtigungen definieren (der Schlüssel, der in Bereich A mit geringer Sicherheit gespeichert ist, kann zwischen Computern von A verwendet werden, für die Anmeldung bei B ist jedoch ein höherer Authentifizierungsfaktor erforderlich) und diese können widerrufen werden separat (Bereich A wurde kompromittiert, aber ich kann mich immer noch von B aus bei C anmelden). SSO ist der Fall, wenn Sie sich beim System mit der höchsten Sicherheit anmelden und sich dann an einer anderen Stelle anmelden können. Ich weiß nicht, welche Risiken es birgt, mehrere Schlüssel pro Benutzer zu haben. Dies wäre ein Thema für die Informationssicherheit .
Gilles
4

Ich weiß nicht, was der beste Weg ist, aber ich kann sagen, welcher mein Weg ist.

Als Systemadministrator verwende ich einen anderen Schlüssel, um auf jeden Server / Dienst als Root zuzugreifen. Auf diese Weise beschränke ich das Risiko bei Verlust oder Beschädigung eines Schlüssels auf einen einzelnen Server und muss nicht alle meine Dienste mit brandneuen Schlüsseln aktualisieren.

Apropos Benutzer, ich benutze für jeden von ihnen einen anderen Schlüssel. Mit diesem Schlüssel kann der Benutzer auf den Dienst zugreifen, den er als nicht privilegierter Benutzer benötigt. Auf diese Weise kann ich jedem Benutzer auf einfache Weise den Zugriff auf einzelne Dienste gewähren oder entziehen. Falls der Benutzer seinen Schlüssel verliert, kann ich ihn aus allen Diensten löschen und das Risiko eines unbefugten Zugriffs begrenzen.

MariusPontmercy
quelle
+1 Ich werde mit meinem Chef über eine neue Richtlinie für die Schlüsselverwendung sprechen ;-) Pro Server / Service klingt das noch sicherer als nur pro Netzwerk
Diskilla
1

Ich glaube, Sie können den privaten Schlüssel überall verwenden, solange Sie eine Passphrase darauf setzen. Das heißt, wenn Sie Ihren privaten Schlüssel für wenige Computer freigeben möchten, sagen wir, Laptop 1, 2, Desktop 1, 2 sollten in Ordnung sein.

Meiner Erfahrung nach ist mein Hauptcomputer mein Desktop, auf dem ich den größten Teil meiner Arbeit mit seinem leistungsstarken Prozessor erledige. Manchmal muss ich jedoch meinen Laptop auf Mobilgeräten verwenden, um Fehler im Rechenzentrum und in anderen Bereichen zu beheben, sodass ich mich weiterhin bei allen Hosts anmelden kann dass ich meinen öffentlichen Schlüssel habe, befindet sich in.

Grant Skywalker
quelle
1
Lesen Sie hier die beste Antwort. Du machst es falsch. Es ist nicht so, dass du es nicht so machen kannst, aber du solltest es nicht.
PhilT
2
Kann nicht sehen, warum all die Abstimmungen. Universitätsnetzwerke (zum Beispiel) haben oft ein vernetztes Home-Verzeichnis, sodass derselbe private Schlüssel von einem Benutzer überall verwendet wird, auch auf Laptops, die Sie erhalten. Solange Sie es nicht unverschlüsselt über das Internet kopieren, ist es meines Erachtens in Ordnung, wenn Sie das Risiko verstehen. Auch auf diese Weise ist es verdammt bequemer, Ihren öffentlichen Schlüssel nicht an 2.000 verschiedenen Orten hinzufügen zu müssen, nur weil Sie sich bei einem anderen Computer angemeldet haben.
Asfand Qazi
Upvoted, weil Sie für diese Antwort nicht den Repräsentanten verlieren sollten. Es ist eine persönliche Präferenz, offensichtlich gibt Ihnen die Verwendung eines separaten Schlüssels pro Dienst und Maschine letztendlich mehr Kontrolle, aber manchmal ist es nur eine Zeitverschwendung, abhängig von Ihrem Anwendungsfall.
Daniel Dewhurst
0

In meiner Firma verwenden wir diese Schlüssel benutzerspezifisch. Das heißt Fall zwei. Der Benutzer verfügt über einen eigenen Schlüssel, der für jeden Computer verwendet wird, mit dem er eine Verbindung zum Unternehmenssystem herstellt. Meine Meinung ist, einen Schlüssel für ein System zu verwenden. Das bedeutet, dass Sie diesen Schlüssel auf jedem Computer verwenden, auf dem Sie eine Verbindung zu den jeweiligen Netzwerken herstellen müssen. In Ihrem Fall wäre das ein Schlüssel für GitHub und ein Schlüssel für das Unternehmenssystem. Wenn Ihr Administrator Sie also erneut fragt, gebe ich ihm denselben Schlüssel wie beim letzten Mal. kein neuer. Aber ich weiß nicht, ob es eine gemeinsame Verwendungsrichtlinie für diese Schlüssel gibt und mache es seitdem falsch. Das ist sicher möglich ;-)

Diskilla
quelle
0

Der von Ihnen generierte öffentliche Schlüssel ist für alle. Sie können damit a) die Authentizität prüfen, b) für Sie verschlüsseln

Der private Schlüssel ist also privat. Es ist nur für dich. Und es ist der Schlüssel, den Sie an einem sicheren Ort sichern sollten. Sie können es auch mit einem sicheren Passwort verschlüsseln, wenn Sie es beispielsweise auf einem USB-Stick speichern.

Der öffentliche Schlüssel ist Ihre Identität für andere. Es ist also kein Problem / es ist besser, ein Schlüsselpaar für alles zu verwenden, zumindest wenn Sie keine explizite neue Identität verwenden möchten, damit andere nicht wissen, dass Sie es sind.

Kissaki
quelle
3
Danke, aber Ihre Antwort hat größtenteils nichts mit meiner Frage zu tun. Siehe @ Diskillas Antwort.
Behrang