SSH-Agent-Setup unter Windows mit Cygwin

SSH-Agent-Setup unter Windows mit Cygwin

Ich habe diese Frage nur als Erinnerung für mich erstellt, da ich normalerweise nur alle paar Jahre einen SSH-Agenten einrichte.

Wie kann man also einen SSH-Agenten unter Windows einrichten, vorausgesetzt, dass eine Linux-ähnliche Shell-Umgebung verwendet wird?

Antwort1

Mein aktuelles Setup:

  • Windows 10 Pro
    • sollte auch mit älteren Windows-Versionen funktionieren, die den setx-Befehl unterstützen (Win7)
  • Babun-Muschel(zsch)
    • basiert auf Cygwin

Was ich getan habe:

Ich habe beschlossen, die Startbefehle zur Datei .zshrc hinzuzufügen, damit sie jedes Mal ausgeführt werden, wenn ich eine neue Shell starte. Hier sind also die Befehle:

# startup of the ssh-agent
AGENT_PID=$(pgrep -x ssh-agent)
if [ $? -ne 0 ]; then
  echo "~/.zshrc: Starting SSH Agent!"

  eval `ssh-agent` && ssh-add ~/.ssh/id_rsa
  setx SSH_AUTH_SOCK $SSH_AUTH_SOCK
  setx SSH_AGENT_PID $SSH_AGENT_PID

  echo "~/.zshrc: SSH Agent running (PID: $SSH_AGENT_PID)"
else
  echo "~/.zshrc: SSH Agent already running (PID: $AGENT_PID)"
fi
  1. Der Befehl pgrep sucht nach laufenden SSH-Agenten. Wenn einer läuft, gibt er die Prozess-ID aus und überspringt den Start eines anderen Agenten.
  2. Wenn keiner gefunden wurde, wird der Agent gestartet und die Umgebungsvariablen werden exportiert
    1. eval `ssh-agent`startet den Agenten und wertet seine Ausgabe aus, die die Umgebungsvariablen setzt SSH_AUTH_SOCKundSSH_AGENT_PID
    2. ssh-addfügt dem Agenten den angegebenen privaten Schlüssel hinzu, der zunächst zur Eingabe der Passphrase für den privaten Schlüssel auffordert.
    3. Da die oben genannten Variablen nur für den gestarteten Shell-Prozess festgelegt werden, müssen sie global festgelegt werden, damit der Benutzer für andere Shells und andere Tools verfügbar ist, die nicht von der Shell gestartet werden. Dies kann mit dem Befehl setx von Windows aus erfolgen. Ich habe die Variablen einfach entsprechend denen festgelegt, die vom Agenten abgerufen wurden.

Danach sind Sie fertig und der Agent läuft und ist nutzbar, sobald Sie zum ersten Mal eine Shell gestartet haben. Um sicherzustellen, dass der Agent beim Windows-Start gestartet wird, können Sie den Shell-Launcher auch zum Windows-Autostart hinzufügen.

Antwort2

bei mir hat es funktioniert, dem Oracle Cygwin SSH-Setup [1] zu folgen. Von dort aus können Sie Cygwin installieren und dann SSH konfigurieren. Ich verwende dieses Setup bei der Arbeit für alle Arten von QE, um eine Verbindung zu den Maschinen herzustellen und dort Tests durchzuführen. Sie können die meisten Linux-Befehle ausführen und auch Windows-Befehle verwenden, was ziemlich cool ist.

Im Grunde eine Linux-Shell in Windows :-)

Prost,

Martin

[1]https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC150

verwandte Informationen