Ich habe zwei Maschinen, M1 und M2, beide mit OS X, und eine dritte Maschine, L, mit Linux. M1 und M2 haben RSA-Schlüssel im Schlüsselbund entsperrt, sodass ich:
- ssh von M1 zu M2, ohne nach einem Passwort oder der Passphrase des Schlüssels gefragt zu werden
- ssh von M2 nach L, ohne nach einem Passwort oder der Passphrase des Schlüssels gefragt zu werden
Wenn ich jedoch per SSH von M1 zu M2 und dann zu L gehe (während ich mich physisch noch auf M1 befinde), werde ich nach der Passphrase des Schlüssels gefragt! Ich habe versucht, die Sperre manuell mit login.keychain
dem security
Befehl aufzuheben, aber das scheint keine Wirkung zu haben.
Was läuft schief? Wie kann ich doppeltes SSH verwenden, ohne Passphrasen einzugeben?
Antwort1
Der Schlüsselbund funktioniert genau wie er soll. -A leitet Ihre geladenen Schlüssel von M1 über M2 an L weiter. Ich vermute, dass beim Anmelden bei M2 Ihre Schlüssel nicht initialisiert bzw. keine vollständige Sitzung gestartet wird, da der grafische Anmeldevorgang mit all seinen Nebenwirkungen nicht stattgefunden hat.
Wenn Sie Ihren Agenten überall hin weiterleiten möchten, wo Sie SSH verwenden, sollten Sie die Datei ~/.ssh/config erstellen und einen Eintrag für den *-Host hinzufügen, wobei „ForwardAgent“ auf „yes“ gesetzt ist:
Host *
ForwardAgent yes
Darüber hinaus können Sie genauer angeben, an welchen Host Sie Ihren Agenten weiterleiten möchten, indem Sie das * durch einen Hostnamen ersetzen.
Antwort2
Sie versuchen, sich von M2 aus bei L anzumelden. Das bedeutet, dass M2 Ihre Anmeldeinformationen (Schlüssel und Passphrase) haben muss. Ihre Anmeldeinformationen befinden sich jedoch tatsächlich auf M1.
Sie können Ihre Anmeldeinformationen nach M2 kopieren, müssen dann aber mit dem Schlüsselbund auf M2 interagieren. Alternativ können Sie M2 anweisen, den Schlüsselbund auf M1 und nicht den Schlüsselbund auf M2 zu kontaktieren. Dies ist tatsächlich die übliche Methode, und bei einigen Installationen funktioniert dies sofort, bei Ihnen jedoch anscheinend nicht.
AktivierenAgentenweiterleitungvon M1 nach M2. Übergeben Sie in der Befehlszeile mit OpenSSH die Option (d. h. auf M1 -A
ausführen ). Sie können die Direktive auch in eingeben . Vielleicht gibt es unter OSX auch eine GUI-Möglichkeit, dies zu tun.ssh -A M2
ForwardAgent
~/.ssh/config