openssh in Windows 7, führen Sie ssh-add einmal für alle cmd-Instanzen aus

openssh in Windows 7, führen Sie ssh-add einmal für alle cmd-Instanzen aus

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-agentes aufruft und global verfügbar macht, sodass Sie es ssh-addohne jegliche Konfiguration von jedem Terminal, z. B. CMD, Bash, PowerShell usw., sshverwenden 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_fileAusfü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

verwandte Informationen