openssh: Lassen Sie ssh nach Bedarf Schlüssel zum Agenten hinzufügen

25

Wenn ich in einen Server ssh und mein Schlüssel nicht im Agenten geladen ist, muss ich abbrechen und dann ssh-add ausführen, um meinen Schlüssel in den Agenten zu bekommen. Ich möchte, dass der Befehl ssh den Schlüssel automatisch hinzufügt, wenn er nicht vorhanden ist. Ist das möglich?

rätselhafter Physiker
quelle
Haben Sie einen Schlüssel für alle Ihre Zielhosts oder haben Sie unterschiedliche Schlüssel mit unterschiedlichen Passwörtern? Verwenden Sie Kitt aus Windows oder verwenden Sie ein X-basiertes Fenstersystem unter Linux oder verwenden Sie einen Mac?
Otheus
Ich benutze nur einen Schlüssel und öffne sh. ssh findet bereits den richtigen Schlüssel heraus und fragt mich nach der Passphrase, aber nachdem ich ihn eingegeben habe, wird der Schlüssel nicht mehr im Agenten gespeichert. Dieses Verhalten ist auf allen POSIX-Systemen und Cygwin gleich.
EnigmaticPhysicist
Sieht es ähnlich aus? stackoverflow.com/questions/3466626/…
techraf
Nein, das ist anders. Ich möchte das Schlüsselkennwort jedes Mal eingeben, wenn der Agent gestoppt wird. Ich möchte nur, dass ssh den Schlüssel nach Bedarf direkt zum Agenten hinzufügt, anstatt zuerst ssh-add zu verwenden.
EnigmaticPhysicist

Antworten:

35

Die AddKeysToAgentOption macht was ich will. Ich kann -o AddKeysToAgent=yesauf der Kommandozeile angeben oder AddKeysToAgent yesin meinem eine Zeile für sich hinzufügen .ssh/config. Entweder funktioniert.

Es sieht so aus, als wäre dies eine sehr neue Erweiterung von openssh, die in Release 7.2 vom 28.02.2016 erscheint!

http://www.openssh.com/txt/release-7.2

Danke, OpenBSD! Ich werde das viel benutzen .

rätselhafter Physiker
quelle
.ssh / config: Zeile 3: Ungültige Konfigurationsoption: AddKeysToAgent. Irgendwelche Gedanken? Unix-Server
Trainoasis
Überprüfen Sie Ihre openssh-Version. $ ssh -V. Es muss neuer als oder gleich 7.2 sein.
enigmaticPhysicist
In der Tat war das der Fall, danke. Fragt nach dem erneuten Anmelden trotzdem nach dem Passwort. Wie automatisiere ich den Git-Pull per Skript, wenn ich zum Beispiel immer pass eingeben muss? Und ich denke, passwortlos id_rsa ist keine gute Idee ...
trainoasis
Meinen Sie zwischen SSH-Anmeldungen oder zwischen lokalen Anmeldungen? Das Passwort soll zwischen lokalen Anmeldungen gelöscht werden.
enigmaticPhysicist
Jedes Mal , wenn ich ein Skript lokal ausführen, sollte es ssh dort und laufen git pull usw., aber natürlich kann nicht, weil es das Kennwort für GIT Befehle benötigt (ssh Werke ohne da Pass in Schlüsselanhänger, aber Befehle gibt es natürlich für Pass fragen)
trainoasis