Wie bringe ich SSH dazu, nur einen Schlüssel vom SSH-Agenten zu verwenden?

Wie bringe ich SSH dazu, nur einen Schlüssel vom SSH-Agenten zu verwenden?

Ich muss zwei verschiedene SSH-Schlüssel verwenden, wenn ich eine Verbindung zum selben Host herstelle.

Die Maschine, die ich für die Verbindung verwenden muss (aufgrund von IP-Adressbeschränkungen), ist nicht die Maschine, auf der die SSH-Schlüssel gespeichert sind, daher verwende ich hier ssh-agent. Außerdem erfolgen diese SSH-Verbindungen unter der Kontrolle eines Skripts, das auf der Zwischenmaschine ausgeführt wird.

Wenn die SSH-Schlüssel lokal auf diesem Computer wären, könnte ich mir vorstellen, dass ich „ssh -i“ (oder vielleicht „ssh-add“ in einem verschachtelten Agenten) verwenden könnte, um die Identität anzugeben, die ich verwenden möchte, und ich könnte die Skripte und/oder den Skriptkontext aktualisieren, um in meinem Fall das Richtige zu tun (wahrscheinlich mit einer Konfigurationsdatei, um die relevanten Details anzugeben).

Da sich die Schlüssel jedoch nicht auf der Maschine befinden, die die SSH-Verbindung herstellt, schlägt ssh -i fehl (die private Schlüsseldatei existiert auf dieser Maschine nicht). Und ebenso verlangt ssh-add von mir, den Schlüssel durch Angabe des Dateinamens des privaten Schlüssels anzugeben. (Oder ich vermute, dass dies der Fall ist – ich habe noch nicht herausgefunden, wie man SSH-Agenten verschachtelt, aber die Dokumentation zu ssh-add lässt Zweifel aufkommen, ob dies ein plausibler Ansatz wäre.)

Meine Frage lautet also: Wie bringe ich SSH dazu, bei der Kontaktaufnahme mit dem Zielsystem nur den von mir angegebenen Schlüssel zu verwenden?

[Natürlich müssen auch andere diese Skripte verwenden, aber das ist ein Problem, das ich lösen kann, nachdem ich es für mich zum Laufen gebracht habe.]

Mit anderen Worten, ich habe folgende Situation:

$ ssh-add -l
2048 SHA256:A8PFww3boSTRe8sPvXDgir09KNVqu+JvWNw7/GLCiwM /home/account/.ssh/key1.pem (RSA)
2048 SHA256:Em5p4B++GIm0l/zDYgZ26VaHbIb07T6MViu5ioMPTiA /home/account/.ssh/key2_rsa (RSA)
4096 SHA256:JON2JaTTk1r3ufUrGm4C/cE9IG9edyfDxE1zTel/0u8 /home/account/.ssh/key3_rsa (RSA)

Und in einem Kontext muss ich per SSH key2_rsa verwenden und im anderen Kontext muss ich per SSH key3_rsa verwenden

Die Verwendung des falschen Schlüssels führt hier dazu, dass die Verbindung zum Zielsystem fehlschlägt (weil es erkennt, dass der andere Schlüssel Zugriff auf die Maschine hat, jedoch keinen Zugriff auf dieses Subsystem).

Wie kann ich das zum Laufen bringen?

Antwort1

ssh -iakzeptiert auch Dateien mitöffentlichSchlüssel, und wenn im Agenten ein passender Schlüssel gefunden wird, wird dieser vor allem anderen ausprobiert.

Wenn zusätzlich -o IdentitiesOnly=yesangegeben ist, verwendet der Clientnurdiesen Schlüssel und wird nicht auf andere Schlüssel zurückgreifen, wenn er abgelehnt wurde. (Beachten Sie, dass der Fall auf andereMechanismen, wie GSSAPI oder Passwort, wird durch eine andere Option gesteuert.)

verwandte Informationen