SSH-Agentenweiterleitung, Mehrfachsprung

7

Ich habe dieses Setup mit einem Linux-Ursprungscomputer getestet - alles ist gleich - nur der erste Hop kann Schlüssel vom Ursprungscomputer verwenden.

Anfängliches Problem

Ich versuche, die SSH-Agentenweiterleitung mit mehreren Hops einzurichten. Mein lokaler Computer ist Windows, mit Kitt und Festzug, alle Linux-Computer sind Debian 7.

Das Problem ist, dass meine privaten Schlüssel, die aus Windows stammen, nur beim ersten Hop funktionieren. Der private Schlüssel, der auf einem der ersten Computer hinzugefügt wird, funktioniert überall.

Die erste Hop-Maschine heißt 'vpn1', die zweite 'www1'. 'vpn1' ist mit dem Internet und dem Intranet (10.1.0.1) verbunden. 'www1' ist nur mit dem Intranet (10.1.0.10) verbunden. 'vpn1' fügt den Schlüssel ([email protected]) mit 'ssh-add' hinzu. Dieser Schlüssel wird im Festzug angezeigt.

Debuggen

Ich sehe alle 3 Schlüssel in ssh-add -L:

ssh-rsa [pubkey-1] [email protected] //This is github key originating from Windows
ssh-rsa [pubkey-2] [email protected] //This is SSH key originating from Windows
ssh-rsa [pubkey-3] [email protected] //This is SSH key originating from 'vpn1'

Wenn ich versuche ssh -v -T [email protected]von 'vpn1'

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: [email protected]
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Authentication succeeded (publickey).

Wenn ich versuche ssh -v -T [email protected]von 'www1'

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: [email protected]
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /home/enbyted/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/enbyted/.ssh/id_dsa
debug1: Trying private key: /home/enbyted/.ssh/id_ecdsa
debug1: Next authentication method: password

Das gleiche gilt für ssh für Hosts, die nur den Schlüssel '[email protected]' akzeptieren. Aber ich kann mit so vielen Hops SSH, wie ich möchte, mit '[email protected]'. Gleiches gilt natürlich auch für Git-Befehle.

Konfigurationen

Meine ~/.ssh/config(auf allen Servern gleich):

Host 10.1.0.*
    ForwardAgent yes

Host *
    ForwardAgent no

Meine /etc/ssh/sshd_config(ohne Kommentare, auf allen Servern gleich):

Port <custom-port>
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Fragen

  • Warum ist das so?
  • Was mache ich falsch?

Es ist auch sehr seltsam, dass github auf 'www1' zwei Authentifizierungsmethoden anbietet - Passwort und publickey ... Ich bin sicher, dass 'www1' SSHing zu github.com eine Verbindung zu demselben Server wie 'vpn1' herstellt.

Update Nr. 1: Netzwerkeinrichtung auf Image

Bitte beachten Sie, dass das Bild aus dem Artikel stammt , aber ziemlich genau mein Setup zeigt.

           Netzwerk-Setup-Image

Ich habe also 2 Schlüssel auf meinem Heim-PC und einen Schlüssel auf ruapehu (vpn1).

Wenn ich SSH vom Heim-PC aus ruapehu, kann ich alle drei Schlüssel gut verwenden. Aber wenn ich ein anderes SSH von Ruapehu (vpn1) nach Aoraki (www1) mache, kann ich nur den Schlüssel von Ruapehu verwenden.

Und wenn ich von Aoraki (www1) zu einem der unten aufgeführten Hosts mit einer beliebigen Anzahl von Hopfen ssh, funktioniert nur der Schlüssel von Ruapehu.

Dies ist nicht der Fall, wenn der Heim-PC Windows mit Putty + -Pageant oder Linux mit ssh-agent ist.

Enbyted
quelle
Versuchen Sie möglicherweise, es einzugrenzen, indem Sie Fenster als ersten Sprung nach Möglichkeit entfernen. Verwenden Sie Linux für jeden Hop, um festzustellen, ob er wie erwartet funktioniert.
mkc
@ Ketan Alles funktioniert auf dem ersten Hop (und der lokalen Maschine). Beim zweiten Sprung kann ich jedoch keine Schlüssel verwenden, die von einem lokalen Computer (Windows) stammen.
Enbyted
@slm Das habe ich in OP nicht gesagt. vpn1 und www1 gehören zur Klasse 10.1.0.0/24. Aber ich habe es versucht und es hat nicht geholfen.
Enbyted
@Enbyted Ist es möglich, dass der Windows-Computer den SSH-Handshake nicht ordnungsgemäß ausführt? Eine Möglichkeit, dies zu testen, wäre die Verwendung von Linux als erste Maschine.
mkc
@ Ketan es ist technisch möglich, ich benutze Putty und Pageant. Der von 'vpn1' hinzugefügte Schlüssel ist im Festzug sichtbar. Ich habe momentan keine Linux-Maschine zur Hand, aber ich werde sie so schnell wie möglich testen.
Enbyted

Antworten:

1

Ich denke, Ihr Problem liegt in der Konfiguration von PuTTY. Diese Vorwärtseinstellung muss folgendermaßen überprüft werden:

                     ss des Dialogs

Verweise

slm
quelle
Danke für die Antwort, aber ich habe es bereits überprüft. Wie ich in OP sagte - ich kann private Windows-Schlüssel beim ersten
Sprung verwenden