Umgang mit SCP innerhalb einer Gruppe von Servern mit unterschiedlichen Schlüsseln

Umgang mit SCP innerhalb einer Gruppe von Servern mit unterschiedlichen Schlüsseln

Ich arbeite mit einer Gruppe von Servern an einem VPN mit Ubuntu 18.04 und habe für jeden Server eine andere Schlüsseldatei. Wenn ich jedoch versuche, Dateien sicher zu kopieren (z. B. den Munge-Schlüssel sicher zwischen Servern zu verteilen), wird mir dies verweigert, da ich keinen geeigneten Schlüssel habe (zumindest glaube ich, dass dies der Grund ist, es wird „Zugriff verweigert (öffentlicher Schlüssel)“ zurückgegeben).

Meine privaten Schlüssel auf jedem Server aufzubewahren, ist wahrscheinlich keine gute Praxis. Dateien auf meinen lokalen Rechner zu kopieren und sie dann auf einen anderen Server zu kopieren, ist mühsam und ich bin mir auch nicht sicher, ob das sicher ist.

Wie wird das richtig gehandhabt? Kann ich auf jedem Server einen Benutzer (z. B. Munge) verwenden, um zwischen ihnen zu kopieren, wenn nicht an einen beliebigen Ort, dann in bestimmte Ordner, die ich später mit sudo cp verwenden kann? Gibt es eine Option, die keine Sicherheitslücke darstellt?

Antwort1

Die schlüsselbasierte Authentifizierung mit SSH (SCP ist ein Ableger von SSH) ist eine Frage der Public-Key-Kryptographie. Sie persönlich haben einen privaten Schlüssel, den Sie geheim halten, und verteilen Ihren öffentlichen Schlüssel an alle.

Um Ihre Frage zu beantworten: Sie sollten und brauchen NICHT mehrere private Schlüssel, einer reicht aus. Dann laden Sie Ihre öffentlichen Schlüssel auf ALLE Server hoch. Sie sollten eine Sicherungskopie Ihres privaten Schlüssels an einem sicheren Ort aufbewahren und mit einer Passphrase verschlüsseln.

Zweitens widerspricht es der Philosophie der Public-Key-Kryptographie, Ihre privaten Schlüssel auf den Servern zu speichern, auf die Sie zugreifen. Sie halten den privaten Schlüssel nicht geheim. Ihr privater Schlüssel sollte bei Ihnen sicher und geschützt sein und vor allen geheim gehalten werden. Nur Sie sollten den privaten Schlüssel haben und niemand sonst.

Außerdem empfiehlt es sich, auf allen Servern denselben Benutzernamen und öffentlichen Schlüssel zu verwenden.

Bewahren Sie Ihren privaten Schlüssel also sicher auf und verteilen Sie den öffentlichen Schlüssel an alle Server, auf die Sie zugreifen möchten. Jetzt können Sie denselben privaten Schlüssel verwenden, um sich bei allen Ihren Servern anzumelden!

Antwort2

Wenn Sie Daten zwischen Servern austauschen müssen, können Sie sich ansehen scp -3 server1:path1 server2:path2. Dabei werden die Daten übertragen und Ihr Host als Man-in-the-Middle verwendet (ohne direkte Verbindung zwischen den Servern).

Sie können Ihre .ssh/configDatei auch mit IdentityFileOptionen für jeden Serverblock konfigurieren:

Host server1
  IdentityFile ~/.ssh/file1
Host server2
  IdentityFile ~/.ssh/file2

verwandte Informationen