Das Szenario:
Ich führe ssh-agent auf meinem lokalen PC aus und alle meine Server / Clients sind so eingerichtet, dass sie die SSH-Agentenauthentifizierung weiterleiten. Ich kann mit dem ssh-agent auf meinem lokalen PC zwischen all meinen Computern wechseln. Das funktioniert.
Ich muss in der Lage sein, eine SSH auf einem Computer als ich selbst (Benutzer1) durchzuführen , zu einem anderen Benutzer mit dem Namen Benutzer2 ( sudo -i -u Benutzer2 ) zu wechseln und dann mit dem ssh-Agenten, den ich auf meinem lokalen PC ausgeführt habe, zu einer anderen Box ssh. Nehmen wir an, ich möchte so etwas wie ssh user3 @ machine2 ausführen (vorausgesetzt, user3 hat meinen öffentlichen SSH-Schlüssel in der Datei "authorized_keys").
Ich habe sudo so konfiguriert, dass die Umgebungsvariable SSH_AUTH_SOCK beibehalten wird.
Alle beteiligten Benutzer (Benutzer [1-3]) sind nicht privilegierte Benutzer (nicht root).
Das Problem:
Wenn ich zu einem anderen Benutzer wechsle, hat Benutzer2 keinen Zugriff auf den Socket, der von Benutzer1 erstellt wurde Natürlich macht es Sinn, sonst könnte Benutzer2 den privaten Schlüssel von Benutzer1 entführen und als dieser Benutzer herumspringen.
Dieses Szenario funktioniert einwandfrei, wenn ich anstelle einer Shell über sudo für Benutzer2 eine Shell über sudo für root erhalte. Weil root natürlich Zugriff auf alle Dateien auf dem Computer hat.
Die Frage:
Wie kann ich vorzugsweise mit sudo von Benutzer1 zu Benutzer2 wechseln, aber trotzdem Zugriff auf SSH_AUTH_SOCK von Benutzer1 haben?