SSH: Verwenden Sie ein privates / öffentliches Schlüsselpaar für jeden Remote-Computer? Oder ein einziges Paar für alle?

23

Wenn Sie öffentliche SSH-Anmeldungen für mehrere Computer benötigen, verwenden Sie einen privaten Schlüssel und legen auf allen Computern denselben öffentlichen Schlüssel ab? Oder haben Sie ein privates / öffentliches Schlüsselpaar für jede Verbindung?

Nick
quelle
@ Jim Zajkowski: Ich bin nicht sicher, wie ich auf Ihren Kommentar antworten soll, aber das ist für Sie. Jump-Boxen ermöglichen den kontrollierten Zugriff auf mit dem Internet verbundene Server in einer DMZ (hinter einer Firewall). Angenommen, Sie haben "server_a" und "server_b". A befindet sich im Netzwerk und B befindet sich außerhalb des Netzwerks. Externe Kunden stellen eine Verbindung zu B her. Der Verkehr von A nach B muss gesteuert werden und umgekehrt. Sie fügen also eine Jump-Box mit zwei Netzwerkkarten hinzu. Eine, die es mit dem internen Netzwerk verbindet (A) und eine, die es mit dem externen Netzwerk verbindet (B). Also von A gehst du zur
@IMTheNachoMan - Ich habe Ihre Antwort in einen Kommentar umgewandelt, obwohl der beste Ort dafür ein Kommentar direkt in der Antwort ist, der den Kommentar enthält, auf den Sie antworten (das hat mich etwas schwindelig gemacht). Wenn Sie Fragen haben, gehen Sie zu Meta und fragen Sie. Trotzdem danke für die Klarstellung.
Kara Marfia

Antworten:

27

Ich verwende einen Schlüssel pro Systemgruppe, die eine gemeinsame Verwaltungsgrenze haben. Dies schränkt die Anzahl der Computer ein, die bei einer Beschädigung eines Schlüssels geknackt werden, und überfordert meine Kapazität zum Speichern und Verwalten von mehreren tausend Schlüsseln nicht vollständig. Unterschiedliche Passphrasen auf jedem Schlüssel bedeuten, dass selbst wenn alle Ihre privaten Schlüssel gestohlen werden und ein Schlüssel kompromittiert ist, der Rest nicht mit auf die Toilette geht. Wenn Sie etwas Dummes tun (z. B. einen privaten Schlüssel auf einen nicht vertrauenswürdigen Computer kopieren), müssen Sie auch hier nicht alles neu eingeben, sondern nur die Computer, die diesem Schlüssel zugeordnet sind.

womble
quelle
4

Der öffentliche Schlüssel spielt keine große Rolle, da er per Definition veröffentlicht werden kann. Das einzige Problem ist also die Privatsphäre Ihrer privaten Schlüssel. Sie befinden sich auf Ihrem eigenen Computer und alle zusammen. Wenn einer davon kompromittiert wird, ist es wahrscheinlich, dass sie alle kompromittiert werden. Daher sind mehrere Schlüsselpaare nur mehr Arbeit für den gleichen Effekt.

Ich würde nur unterschiedliche Schlüssel für unterschiedliche Konten oder Rollen verwenden, die per Definition keine vollständige Überlappung im Zugriff haben sollten.

Lee B
quelle
2

Wenn ich das richtig verstehe, hat jeder Server seinen eigenen öffentlichen Schlüssel.

Für einen bestimmten Benutzer können Sie einen Schlüssel generieren und überall verwenden, solange der private Schlüssel auf alle initiierenden Hosts repliziert wird. (Dies würde automatisch über netzwerkbasierte Basisverzeichnisse und ein verzeichnisbasiertes Authentifizierungssystem wie OpenLDAP geschehen, da der Benutzer unabhängig von der Workstation, von der aus er sich anmeldet, immer "derselbe" ist.)

Außerhalb eines verzeichnisbasierten Benutzersystems halte ich es für eine schlechte Idee, überall die gleichen Schlüssel zu verwenden. Dies führt zu einer Verringerung der Systemsicherheit, da sich jeder, der einen Schlüssel von einer der Workstations erhält, als authentifizieren kann dieser Benutzer an den Remote-Server.

Eine andere Alternative, die von mehreren großen Unternehmen (und ich bin sicher auch von kleinen Unternehmen) angeboten wird, besteht darin, einem "Benutzer" niemals die Verwendung von vorinstallierten Schlüsseln zu gestatten, sondern sich an einer "Sprung" - oder "Hub" -Box anzumelden , sudie entsprechende Benutzer verbindet und dann SSH von dort zu den Server , die sie benötigen , zu verwalten.

Wenn Sie ein Verwaltungssystem wie die HP Server Automation-Plattform verwenden, vereinfacht sich die Remoteverwaltung verwalteter Server.

Labyrinth
quelle
1
Jeder sollte seine Schlüssel verschlüsselt lassen. Können Sie die Sicherheitsvorteile der "Sprungbox" erklären, weil ich es nicht sehe?
Jim Zajkowski
Die Idee hinter einer "Jump-Box" ist, dass Sie mit Ihrem "normalen" Benutzer nicht auf Server in einer DMZ oder einem Subnetz usw. zugreifen können. Sie stellen eine Verbindung mit der Jump-Box her und übermitteln diese in protokollierter Form an den Verwaltungsbenutzer, um eine Verbindung mit dem anderen Netzwerk herzustellen.
Warren
2
Sicherheitsnutzen == 0, mit anderen Worten.
womble
@womble - vielleicht ist das richtig. Aber genau das tun viele paranoide Unternehmen. Da die suSitzung jedoch protokolliert wird, ist sie überprüfbar.
Warren
1
Warum sind nur die suSitzungen überprüfbar und nicht die anderen?
João Portela
1

Wie andere gesagt haben, obwohl die Idee mehrerer Schlüsselpaare sicherer zu sein scheint, ist es nur umständlicher und nicht sicherer, wenn die Möglichkeit besteht, dass sie so verwendet werden, dass sie alle am selben Ort sind. Mehrere Passphrasen würden die Sicherheit erhöhen, aber auch große Probleme beim Versuch, sich zu merken, welche Passphrase zu welchem ​​Schlüssel und welcher Schlüssel zu welchem ​​Server gehört.

Die vernünftigste Antwort für mich wäre die, bei der dies NUR vorgeschlagen wurde, wenn es sich um separate Verwaltungsrollen ohne große Überschneidungen handelt. So, dass es sich um verschiedene Personen handeln kann, die die verschiedenen Rollen übernehmen, oder an verschiedenen Arbeitsplätzen oder was auch immer. In diesem Fall müssen Sie ohnehin für jede Rolle andere Dinge erledigen, damit es gerechtfertigter ist.

Fred
quelle
0

Um die Verwaltung mehrerer SSH-fähiger Server zu vereinfachen , sollten Sie cssh auschecken . Sie können cssh mit passphrasierten SSH-Schlüsseln kombinieren, um Ihre Fähigkeit, mehrere Server gleichzeitig zu verwalten, erheblich zu verbessern.

Greeblesnort
quelle
2
Wie schafft man es, "verrückte Käfer" in einer verherrlichten for-Schleife zu bekommen?
womble
Etwas daran scheint sehr tödlich - Wenn Sie einen Fehler machen, versauen Sie alle Ihre Server auf einmal, anstatt nur einen!
Nick
@Nick - stimmt, aber das ist so ziemlich immer der Fall, wenn ich für die Box verantwortlich bin =) @womble - huh? Auf welche "verrückten Käfer" verweisen Sie?
Greeblesnort
1
Oben auf der Projektseite, die Sie verlinkt haben: "HINWEIS: Ich werde sehr bald wieder mit diesem Projekt beginnen, damit ich die verrückten Fehler darin beheben kann." Die Tatsache, dass die Nachricht zwei Jahre später noch da ist, stärkt mein Vertrauen nicht weiter.
womble