Zusätzliche Konfiguration für die Weiterleitung von SSH-Agenten erforderlich?

21

Diese Anleitung erklärt hervorragend, wie ssh-agent auf mehreren Systemen funktioniert. Ich möchte die Weiterleitung so einrichten, wie sie in den letzten Diagrammen enthalten ist, habe jedoch Probleme, die dafür erforderlichen Schritte aufzuspüren.

Auf einigen Rechnern in meinem Netzwerk kann ich von A nach B und dann von B nach C sshen, ohne jemals ein Zertifizierungskennwort eingeben zu müssen. Andere Computer geben jedoch (manchmal!) Die Meldung "Konnte keine Verbindung zu Ihrem Authentifizierungsagenten herstellen" aus und leiten meine Authentifizierungsinformationen nicht weiter. Wenn Sie SSH von einem dieser Computer zu einem anderen Computer im Netzwerk senden, werden Sie erneut zur Eingabe meines Kennworts für den privaten Schlüssel aufgefordert.

Ich habe diese Maschinen nicht gebaut, aber ich kann einige von ihnen verwalten. Ich weiß nicht genau, was der Unterschied zwischen Boxen ist, die funktionieren, und solchen, die nicht funktionieren - dies könnte ein Firewall-Problem sein, die Konfiguration von ssh / ssh-agent / sshd, irgendetwas, und ich sehe keine Schritte. Schritt-für-Schritt-Anleitungen für die Weiterleitung im Internet. Ich muss nur wissen, wo ich anfangen soll, dieses Problem aufzuspüren.

Coderer
quelle

Antworten:

23

Die Weiterleitung des SSH-Agenten muss auf dem Client ( ForwardAgentOption in ~/.ssh/config) und auf dem Server ( AllowAgentForwardingOption in sshd_config) zulässig sein . Möglicherweise haben Ihre Computer unterschiedliche Standardeinstellungen für eine oder beide dieser Optionen.

Wenn Sie auf A-> B-> C gehen, ist eine Weiterleitung im Schritt B-> C nicht erforderlich (es sei denn, Sie gehen dann natürlich auf C-> D).

Wenn Sie bei B angemeldet sind, überprüfen Sie, ob die Umgebungsvariable definiert SSH_AUTH_SOCKist. Sein Wert ist ssh, wie man den Agenten kontaktiert.

Es gibt keinen guten Grund, die Agentenweiterleitung auf dem Server zu verbieten, da die Agentenweiterleitung den Client für den Server anfällig macht und nicht das Gegenteil, und Sie die Agentenweiterleitung grundsätzlich manuell einrichten könnten (obwohl dies seitdem nicht mehr sinnvoll wäre) Die Schwierigkeit der Einrichtung würde die Bequemlichkeit der Agentenweiterleitung zunichte machen.

Gilles 'SO - hör auf böse zu sein'
quelle
Die gute Nachricht: Vielen Dank, dass Sie mich auf den richtigen Schlüssel hingewiesen haben! Die schlechte Nachricht: Anscheinend ist dies ein bekannter Fehler in openssh-server. Es scheint irgendwann behoben worden zu sein, aber ich glaube nicht, dass ich eine Version verwende, die aktuell genug ist. Ich erhalte die Meldung "Ungültige Konfigurationsoption: AllowAgentForwarding", wenn ich versuche, sie zu aktivieren. Es sieht so aus, als würde ich mein Software-Loadout aktualisieren (wieder ...)
Coderer
1
@Coderer: Da die Agentenweiterleitung standardmäßig aktiviert ist, sollte es ausreichen, eine AllowAgentForwardingZeile von zu entfernen sshd_config.
Gilles 'SO- hör auf böse zu sein'
@Gilles Wenn jemand die Agentenweiterleitung für eine vorhandene Sitzung manuell einrichten möchte, wie würde er das tun? Dies ist eine echte Notwendigkeit für die Bereitstellung von Skripten, die auf kurzlebigen Computern wie AMIs mit AllowAgentForwardingdeaktivierten Servern verwendet werden .
Andrew De Andrade
@AndrewDeAndrade Für eine vorhandene Sitzung haben Sie Ihre Arbeit ausgeschnitten. Wenn Sie die Agentenweiterleitung einrichten wollten, auch wenn sie auf dem Server deaktiviert ist, müssen Sie einen Unix-Socket über TCP weiterleiten. dies sollte mit netcat oder socat auf beiden seiten möglich sein.
Gilles 'SO - hör auf böse zu sein'
@ Gilles Das ist die Schlussfolgerung, zu der ich auch gekommen bin. Ich fand heraus, dass Sie auch spiped verwenden können, was sicherer ist, aber einen symmetrischen Schlüsselaustausch erfordert, aber danach einfacher ist.
Andrew De Andrade
14

Während Sie oben bereits die richtige Antwort von @Gilles haben, wollte ich darauf hinweisen, dass dies AllowAgentForwardingnur in OpenSSH 5.1 und höher unterstützt wird.

OpenSSH-Server vor 5.1 erlauben nach dem, was ich in meiner RHEL 4u5-Box gesehen habe, standardmäßig die Weiterleitung von Agenten. Wenn Ihr Server älter als 5.1 ist und die Agentenweiterleitung nicht funktioniert, liegt das Problem wahrscheinlich am ssh-Client. Da die Weiterleitung auf einigen Computern für Sie funktioniert, scheint das /etc/ssh/ssh_configSetup in Ordnung zu sein. Überprüfen Sie ~/.ssh/config, ob eine Ausnahme zum Deaktivieren der Agentenweiterleitung für die betroffenen Boxen vorliegt.

Ref: http://www.openssh.org/txt/release-5.1

Sandip Bhattacharya
quelle
Hallo Sandip, hast du eine Idee dazu? superuser.com/questions/958978/…
Niks