Frage SSH: Verwenden Sie für jede Remote-Maschine ein privates / öffentliches Schlüsselpaar? Oder ein einzelnes Paar für alle?


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


21
2017-11-02 11:49


Ursprung


@ Jim Zajkowski: Ich weiß nicht, wie ich auf deinen Kommentar antworten soll, aber das ist für dich. Jump-Boxen ermöglichen den kontrollierten Zugriff auf Server mit Internetzugang, die sich in einer DMZ (hinter einer Firewall) befinden. Angenommen, Sie haben "server_a" und "server_b". A ist im Netzwerk und B ist außerhalb des Netzwerks. Externe Kunden verbinden sich mit B. Der Verkehr von A nach B muss kontrolliert werden und umgekehrt. Sie fügen also eine Sprungbox mit zwei Netzwerkkarten hinzu. Eine, die es mit dem internen Netzwerk (A) verbindet und eine, die es mit dem externen Netzwerk (B) verbindet. Also von A gehst du zur Sprungbox und dann nach B. Einer der Vorteile von
@IMTheNachoMan - Ich habe deine Antwort in einen Kommentar umgewandelt, obwohl der beste Ort dafür ein Kommentar in der Antwort wäre, die den Kommentar enthält, auf den du antwortest (das hat mich etwas schwindlig gemacht). Wenn Sie Fragen haben, klicken Sie auf Meta und fragen Sie nach. Danke für die Aufklärung egal. - Kara Marfia
Sicherheit.stackexchange.com/questions/40050/... - sancho.s


Antworten:


Ich verwende einen Schlüssel pro Satz von Systemen, die eine gemeinsame administrative Grenze teilen. Dies begrenzt die Anzahl der Maschinen, die bei einem kompromittierten Schlüssel auftauchen, während meine Fähigkeit, mehrere tausend Schlüssel zu speichern und zu verwalten, nicht völlig überfordert ist. Unterschiedliche Passphrasen auf jedem Schlüssel bedeuten, dass selbst dann, wenn alle Ihre privaten Schlüssel gestohlen werden und ein Schlüssel kompromittiert ist, der Rest nicht die Toilette damit verlässt. Wenn Sie etwas Dummes tun (z. B. einen privaten Schlüssel auf eine nicht vertrauenswürdige Maschine kopieren), müssen Sie nicht erneut alles neu eingeben, nur die Maschinen, die mit diesem Schlüssel verknüpft sind.


25
2017-11-02 12:05



-1, weil Sie nicht erklärt haben, wie zwei verschiedene private Schlüssel nebeneinander sicherer sind als ein privater Schlüssel. Ich sage nicht, dass Sie keine gute Antwort haben, aber ich denke, es hätte hinzugefügt werden müssen - nicht zuletzt, weil ich es gerne wissen würde;) - Lee B
Antwort erweitert. - womble♦


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

Die einzige Zeit, die ich verschiedene Schlüssel verwenden würde, ist für verschiedene Konten oder verschiedene Rollen, die per Definition keine vollständige Überschneidung beim Zugriff haben sollte.


4
2017-11-02 20:21





Wenn ich richtig verstehe, wird jeder Server seinen eigenen öffentlichen Schlüssel haben.

Für ein gegebenes NutzerSie können einen Schlüssel generieren und ihn überall verwenden, solange der private Schlüssel an alle initiierenden Hosts repliziert wird. (Dies geschieht automatisch über netzwerkbasierte Home-Verzeichnisse und ein verzeichnisbasiertes Authentifizierungssystem wie OpenLDAP, da der Benutzer immer "derselbe" ist, unabhängig davon, von welcher Workstation aus er sich anmeldet.)

Außerhalb eines verzeichnisbasierten Benutzersystems ist es meiner Meinung nach eine schlechte Idee, überall dieselben Schlüssel zu verwenden - das bedeutet eine Verringerung der Systemsicherheit, da sich jeder, der einen Schlüssel von einer der Arbeitsstationen erhalten kann, authentifizieren kann dieser Benutzer auf den Remote-Server.

Eine andere Alternative, die von mehreren großen Unternehmen (und ich bin sicher auch kleinen) angewendet wird, besteht darin, niemals einem "Benutzer" vorinstallierte Schlüssel zu erlauben, sondern sich stattdessen in eine "Sprung" - oder "Hub" -Box einzuloggen , su an den entsprechenden verbundenen Benutzer und dann SSH von dort zu den Servern, die sie verwalten müssen.

Wenn Sie ein Verwaltungssystem wie die HP Server-Automatisierungsplattform verwenden, wird die Remoteverwaltung von verwalteten Servern zu einem vereinfachten Prozess.


2
2017-11-02 12:05



Jeder sollte seine Schlüssel verschlüsselt halten. Können Sie die Sicherheitsvorteile der "Sprungbox" erklären, weil ich sie nicht sehe? - Jim Zajkowski
Wie bei einigen Banken, die ich kennengelernt habe, und anderswo, ist die Idee hinter einer "Sprungbox", dass man mit seinem "normalen" Benutzer nicht auf Server in einer DMZ oder einem Subnetz usw. zugreifen kann. Sie verbinden sich mit der Sprungbox, dann in einem geloggten Formular, su zum Management-Benutzer, um sich in das andere Netzwerk zu verbinden. - warren
Sicherheitsvorteil == 0, mit anderen Worten. - womble♦
@ Womble - vielleicht ist das richtig. Aber das tun viele paranoide Unternehmen. Seit der su Sitzung wird protokolliert, obwohl es überprüfbar ist. - warren
warum sind nur die su Sitzungen auditierbar und nicht die anderen? - João Portela


Wie andere gesagt haben, obwohl die Idee von mehreren Schlüsselpaaren sicherer erscheinen mag, wenn sie die Chance haben, dass sie so verwendet werden, dass sie alle am selben Ort sind, dann ist es nur mühsamer und nicht sicherer. Mehrere Passphrasen würden es sicherer machen, aber auch große Kopfschmerzen, wenn man sich daran erinnert, welche Passphrase zu welchem ​​Schlüssel gehört und welcher Schlüssel zu welchem ​​Server gehört.

Die vernünftigste Antwort für mich wäre diejenige, in der vorgeschlagen wurde, NUR zu tun, wenn es sich um getrennte administrative Rollen ohne große Überschneidungen handelt. So dass es verschiedene Leute sein könnten, die mit den verschiedenen Rollen umgehen oder auf verschiedenen Workstations oder was auch immer. In diesem Fall haben Sie mehr einzigartige Dinge, mit denen Sie sich für jede andere Rolle beschäftigen müssen, so dass es gerechtfertigt ist.


1
2017-07-16 01:45





Um die Verwaltung mehrerer SSH-fähiger Server zu vereinfachen, sollten Sie möglicherweise auschecken cssh. Sie können cssh mit passwortgeschützten SSH-Schlüsseln kombinieren, um die Möglichkeit zu verbessern, mehrere Server gleichzeitig zu verwalten.


0
2017-11-02 20:35



Wie schaffen Sie es, "verrückte Käfer" in einer verklärten For-Schleife zu bekommen? - womble♦
Etwas daran scheint sehr tödlich - Wenn Sie einen Fehler machen, vermasseln Sie alle Ihre Server auf einmal, anstatt nur einen! - Nick
@Nick - stimmt, aber das ist so ziemlich immer der Fall wenn ich die Box betreue =) @womble - huh? zu welchen "verrückten Käfern" beziehen Sie sich? - Greeblesnort
Oben auf der Projektseite, auf die du verlinkt hast: "HINWEIS: Ich werde mich bald wieder mit diesem Projekt befassen, damit ich die verrückten Fehler beheben kann." Die Tatsache, dass zwei Jahre später immer noch Notiz da ist, erhöht meinen Glauben daran nicht weiter. - womble♦