Übergeben Sie meine Anmeldeinformationen von einer SSH-Sitzung an eine andere SSH-Sitzung

8

Ich möchte mit einem bestimmten privaten Schlüssel, den ich in A habe, von A nach B ssh. Dann möchte ich mit denselben Anmeldeinformationen, die ich für ssh in B verwendet habe, von B nach C ssh.

Ist es möglich, die Anmeldeinformationen von einer SSH-Sitzung an eine andere SSH-Sitzung zu "übergeben", die innerhalb der ersten Sitzung gestartet wurde?

Joaquin Cuenca Abela
quelle

Antworten:

14

Ja.

Was Sie suchen, wird als SSH-Agent-Weiterleitung bezeichnet . Sobald Sie gelernt haben, ssh-agentIhre entsperrten Schlüssel zu laden und für die verfügbar zu machen ssh-client, können die Clients diese Daten über die Verbindungskette weitergeben, damit zukünftige SSH-Clients mit dem ursprünglichen Agenten sprechen können.

Unter anderem müssen Sie ForwardAgent yesin Ihren SSH-Konfigurationen die verschiedenen Maschinen einrichten , auf denen diese Berechtigungen zulässig sein sollen. Sie sollten sich bewusst sein, dass dies mehrere neue Ebenen von Sicherheitsproblemen mit sich bringt. Du spielst mit dem Feuer. Sagen Sie nicht, wir hätten Sie nicht gewarnt!

Caleb
quelle
Ich habe einige Details zur Konfiguration von SSH als zweite Antwort hinzugefügt.
Pinguin359
1

Diese Antwort ist zusätzlich zu dem, was Caleb geschrieben hat . Sie sollten darauf achten, die Weiterleitung des SSH-Agenten an nicht vertrauenswürdige Hosts zu aktivieren. Ich liste bestimmte Hosts in meiner ~/.ssh/configDatei als solche auf:

ForwardX11 yes

Host trusted-server
    ForwardAgent yes
    Compression yes

Host trusted-desktop
    ForwardAgent yes
    ForwardX11Trusted yes

Dies ermöglicht die X11-Weiterleitung für alle, OpenSSH filtert jedoch SECURITY-Befehle heraus. Die Komprimierung für den Server ist aktiviert, Trusted X11 (ohne Filterung) für den Desktop und der SSH-Agent für die Verbindung zu beiden.

Pinguin359
quelle