Ich habe openSSH als Teil der neuesten Cygwin-Distribution installiert. Mein Ziel ist es, den SSH-Agenten von der nativen Windows-Konsole (cmd) aus zu verwenden, um mich bei einer Vielzahl von Linux-Rechnern ohne Passwort anzumelden.
Ich habe die Schlüssel generiert und sie in die entsprechenden Verzeichnisse auf den Remote-Hosts hochgeladen und alles funktioniert einwandfrei.
Das einzige Problem, das ich habe, ist, dass ich jedes Mal, wenn ich einen neuen Befehl öffne, „ssh-add“ ausführen und die Passphrase eingeben muss und mich dann ohne Passwort bei den Remote-Hosts anmelden kann. Gibt es eine Möglichkeit, dieses Problem zu lösen? Die ideale Lösung wäre, ssh-add nur einmal auszuführen.
zu Ihrer Information: Ich öffne den Befehl als Argument für den SSH-Agenten: „ssh-agent cmd“
Antwort1
Ich habe tatsächlich ein Tool namens „ssh-agent-helper“ erstellt, das ssh-agent
es aufruft und global verfügbar macht, sodass Sie es ssh-add
ohne jegliche Konfiguration von jedem Terminal, z. B. CMD, Bash, PowerShell usw., ssh
verwenden können.git
Sie finden es hier:https://github.com/raeesbhatti/ssh-agent-helper
Antwort2
Sie können SSH nicht über das native Befehlsfenster ausführen. Sie müssen das Cygwin-Bash-„Fenster“ ausführen, um eine der Cygwin-Binärdateien auszuführen.
Allerdings müssen Sie im Cygwin-Bash-"Fenster" die Ausgabe von ssh-agent in einer Datei speichern und diese Datei dann in eines der Anmeldeskripte einbinden, in denen Sie die zwischengespeicherten Anmeldeinformationen verwenden möchten. Führen Sie im ersten "Fenster" Folgendes aus:
$ ssh-agent >your_save_file # Starts ssh-agent, saves shell variables
$ . your_save_file # Loads saved shell variables into current shell
$ ssh-add # Adds keys into ssh-agent
Führen Sie in jedem der anderen Fenster Folgendes aus:
$ . your_save_file
Alle „Windows“- und untergeordneten Prozesse, die nach . your_save_file
Ausführung des Befehls gestartet werden, können die im SSH-Agent zwischengespeicherten Anmeldeinformationen verwenden. Jedes Mal, wenn der SSH-Agent angehalten oder beendet wird oder nach einem Systemneustart, müssen Sie den ersten Befehlssatz erneut ausführen. Wenn Sie sich nicht sicher sind, ob die zwischengespeicherten Anmeldeinformationen in einer bestimmten Shell verfügbar sind, führen Sie Folgendes aus:
$ ssh-add -l # Show list of loaded keys in ssh-agent