Ist es möglich, weitergeleitete Schlüssel mithilfe der IdentityFile-Direktive in .ssh / config anzugeben?
Ich bin auf diese Eigenart gestoßen, als ich versuchte, Code über Capistrano / GIT auf unserem Produktionsserver bereitzustellen. Sowohl mein persönlicher als auch mein Arbeits-GIT-Schlüssel sind immer in meinem SSH-Agenten geladen, und es ist einfach so geschehen, dass mein persönlicher Schlüssel zuerst dem Agenten hinzugefügt wurde. Ich verwende die Agentenweiterleitung bei der Bereitstellung mit Capistrano. Wenn der Host versucht, den Vorgang "git pull" zu authentifizieren, schlägt dies mit folgendem Fehler fehl:
FEHLER: Die Erlaubnis, "ein Repo" zu erstellen, wurde "Ihrem Benutzer" verweigert.
weil es versucht hat, sich mit meinem persönlichen Git-Schlüssel zu authentifizieren, bevor es den entsprechenden Schlüssel versucht hat (der später im SSH-Agenten kam) und angenommen hat, dass ich auf ein ausländisches Repo zugreife, auf das ich keine Zugriffsberechtigung habe. Ich kann meinem persönlichen Benutzer möglicherweise nur Zugriff auf jedes Arbeitsrepertoire gewähren, aber auf meinem lokalen Computer kann ich dieses Problem umgehen, indem ich benutzerdefinierte Domänen in .ssh / config wie folgt definiere:
Host personal.github.com
Hostname github.com
Benutzer git
IdentityFile ~ / .ssh / some_key
Host work.github.com
Hostname github.com
Benutzer git
IdentityFile ~ / .ssh / some_other_key
und auf diese Weise wird git nie verwirrt. Ist es möglich, .ssh / config-Regeln für weitergeleitete Schlüssel in meinen Produktionsboxen zu erstellen, damit sie immer wissen, welcher Schlüssel beim Einlesen von neuem Code zu verwenden ist? Grundsätzlich möchte ich in der Lage sein:
Host work.github.com
Hostname github.com
Benutzer git
IdentityFile some_forwarded_key
Vielen Dank!