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 (enbyted@vpn1.enbyted.org) 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] git@home.enbyted.org //This is github key originating from Windows
ssh-rsa [pubkey-2] enbyted@home.robotronika.pl //This is SSH key originating from Windows
ssh-rsa [pubkey-3] enbyted@vpn1.enbyted.org //This is SSH key originating from 'vpn1'
Wenn ich versuche ssh -v -T git@github.com
von 'vpn1'
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: git@home.enbyted.org
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Authentication succeeded (publickey).
Wenn ich versuche ssh -v -T git@github.com
von 'www1'
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: git@home.enbyted.org
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: enbyted@home.robotronika.pl
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: enbyted@vpn1.enbyted.org
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 'enbyted@home.robotronika.pl' akzeptieren. Aber ich kann mit so vielen Hops SSH, wie ich möchte, mit 'enbyted@vpn1.enbyted.org'. 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.
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.