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.