Auf meinem Linux-Server angemeldete Benutzer sollten in der Lage sein, mit einem Standardkonto auf einen bestimmten Remote-Computer zu sshen. Die Authentifizierung auf dem Remotecomputer verwendet den öffentlichen Schlüssel, sodass auf dem Server der entsprechende private Schlüssel verfügbar ist.
Ich möchte nicht, dass die Serverbenutzer den privaten Schlüssel tatsächlich lesen können. Die Tatsache, dass sie Zugriff auf den Server haben, ermöglicht ihnen das SSH-Recht, und das Entfernen von ihnen vom Server sollte auch die Verbindung zum Remotecomputer verhindern.
Wie kann ich Benutzern erlauben, eine SSH-Verbindung zu öffnen, ohne ihnen Lesezugriff auf den privaten Schlüssel zu gewähren?
Meine bisherigen Gedanken: Natürlich muss die ausführbare Datei ssh in der Lage sein, den privaten Schlüssel zu lesen, also muss sie unter einem anderen Benutzer auf dem Server laufen, der diese Rechte hat. Sobald die SSH-Verbindung hergestellt ist, kann ich sie an den Benutzer "weiterleiten", damit er Befehle eingeben und mit dem Remote-Computer interagieren kann.
- Ist das ein guter Ansatz?
- Wie soll ich das forward implementieren?
- Wie kann der Benutzer die Verbindung herstellen (dh die Ausführung von ssh durch den Benutzer, der über Leserechte für den Schlüssel verfügt)?
- Gibt es eine Sicherheitslücke? - Wenn die Benutzer einen ssh als einen anderen Benutzer ausführen können, können sie dann alles tun, was der andere Benutzer könnte (einschließlich des Lesens des privaten Schlüssels)?
~/.ssh/authorized_keys
Datei neue öffentliche Schlüssel hinzufügen .