
Gibt es eine Möglichkeit, mit einem privaten Schlüssel, der nur auf einem Laptop (Alice) verfügbar ist, diesen Schlüssel für die Authentifizierung mit Gitlab von einem Server (Bob) aus zu verwenden? (Kleine Komplikation, denke ich, da es einen Jump-Host zwischen Alice und Bob gibt.)
Alice --> springen --> Bob --> Gitlab
Die ~/.ssh/config auf Alice ist derzeit:
Host *
PKCS11Provider /usr/lib/ssh-keychain.dylib
Host jump
HostName jump01.example.org
Host bob
HostName bob.example.org
ProxyJump jump
Ich habe den öffentlichen Schlüssel von Alices Token auf Gitlab und möchte ihn mit git
Befehlen von Bob verwenden. Wie in ...
alice:~ $ ssh bob
Last login: Fri Aug 27 20:33:56 2021
bob:~ $ git clone [email protected]:my/repo.git
wo ich kein Schlüsselpaar auf Bob habe.
Antwort1
Sie müssen über ein gewisses Vertrauen verfügen, das bob
nicht missbraucht werden kann. Die einfache Antwort besteht jedoch darin, einen SSH-Agenten auszuführen und die Agentenweiterleitung zu verwenden.
Starten Sie einen Agenten auf alice
, fügen Sie Ihren PKCS11Provider hinzu und ssh-add -S
konfigurieren Sie dann die Agentenweiterleitung in Ihrer Konfiguration.
Host bob
ForwardAgent yes
HostName bob.example.org
ProxyJump jump
Weitere Informationen zu den PKCS11-Anbietern und zur Agentenweiterleitung finden Sie auf den Manpages für ssh-agent, ssh-add und ssh_config.
Kleine, denke ich, Komplikation, da es sich um einen Jump-Host handelt
Aufgrund der Funktionsweise von ProxyJump ist dies keine Komplikation und spielt buchstäblich überhaupt keine Rolle. Aus der Perspektive des SSH-Clients auf Alice verhält es sich genau so, als ob Sie eine direkte Verbindung zu Bob hergestellt hätten.