Ich habe in den letzten 2 Stunden ohne Glück nach einer Lösung für das folgende Problem gesucht.
Entwicklung:
Ich verwende die öffentliche Authentifizierung, um eine Verbindung zu meinen Servern herzustellen. Ich verwende ssh-agent forwarding, um keine öffentlichen / privaten Schlüssel verwalten zu müssen.
Nehmen wir an, ich habe Server A, B and C
.
Das funktioniert sehr gut, wenn ich von verbinde LOCAL ---> A ---> B
.
Es funktioniert auch sehr gut, wenn ich es tue LOCAL ---> A ---> C
.
Wenn ich es jetzt versuche LOCAL ---> A ---> B ---> C
, kann SSH keine Verbindung herstellen B to C
.
Bemerkenswert: Ich verbinde mich mit Server A als Liquidität, während ich mich mit Server B als Root verbinde. Die Verbindung zu Server B als Liquidität behebt das Problem, aber dies ist keine Option für mich.
Gemäß der Empfehlung eines Benutzers ssh -A
stelle ich jedes Mal sicher, dass die Agentenweiterleitung aktiviert ist.
Ich habe eine ähnliche Frage gefunden, auf die hier keine Antwort gefunden wurde: Ist es möglich, die Weiterleitung von ssh-Agenten durch mehrere Hops zu verketten?
Laut @Zoredache hier: /server//a/561576/45671 Ich muss nur meine Client-Konfiguration auf jedem Zwischensystem anpassen. Ich glaube das habe ich getan.
ProxyCommand
Hopping in Betracht (wie hier erläutert ), anstatt den SSH-Agenten weiterzuleiten. Für Ihre Vorgehensweise müssen Sie allen Maschinen in der Kette vertrauen, da diese Ihre privaten Schlüssel (ab) verwenden können. Ich mag auch den ProxyCommand-Ansatz viel besser, da die Überprüfung der bekannten Hosts lokal erfolgt. Außerdem können Sie die Kette in Ihrer SSH-Konfiguration so einrichten, dass Sie mit einem einzigen Befehl eine Verbindung zu C. herstellen können.Antworten:
Damit die Agentenweiterleitung mehrere Hops durchläuft, müssen Sie lediglich Ihre Client-Konfiguration auf jedem Zwischensystem anpassen, damit die Agentenweiterleitung funktioniert.
Es könnte so einfach sein, als ob Sie sicherstellen, dass
/etc/ssh/ssh_config
dies konfiguriert ist. Wenn Sie jedoch Client-spezifische Konfigurationen~/.ssh/config
verwenden, müssen Sie möglicherweise auch diese Einstellungen anpassen.Sie können sehen, ob eine Agentenweiterleitung stattgefunden hat oder ob ein Fehler aufgetreten ist, wenn Sie nur die
-v
Option hinzufügen .Stellen Sie außerdem sicher, dass Sie eine gültige Umgebungsvariable festgelegt haben.
quelle
ssh-add -l
von die Schlüssel auflisten, von denen ssh glaubt , dass sie über Ihren Agenten abgerufen werden können. Stellen Sie sicher, dass Sie es bei jeder Verbindung weiterleiten!Requesting authentication agent forwarding.
in Ihrer Debug-Ausgabe sehen. Wenn Sie über versucht haben.bash_profile
, ssh-agent zu starten, entfernen Sie es von dort. Andernfalls wird Ihr Agent ohne Identitäten erneut gestartet.