SSH-Agent-Setup unter Windows mit Cygwin

5704
shillner

Ich habe diese Frage nur zur Erinnerung erstellt, da ich normalerweise nur alle paar Jahre einen SSH-Agenten aufbaue.

Wie kann man also einen SSH-Agenten unter Windows einrichten, wenn man von einer Linux-ähnlichen Shell-Umgebung ausgeht?

4

2 Antworten auf die Frage

6
shillner

Mein aktuelles Setup:

  • Windows 10 Pro
    • sollte auch mit älteren Windows-Versionen funktionieren, die den Befehl setx (Win7) bereitstellen
  • Babun-Muschel (zsh)
    • basiert auf cygwin

Was ich getan habe:

Ich entschied mich dazu, die Startbefehle zur Datei .zshrc hinzuzufügen, so dass sie jedes Mal ausgeführt wird, wenn ich eine neue Shell starte. Also hier sind 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 aktiven SSH-Agenten. Wenn einer läuft, wird die Prozess-ID ausgegeben und der Start eines anderen Agenten übersprungen.
  2. Wenn keine gefunden werden konnte, wird der Agent gestartet und die Umgebungsvariablen werden exportiert
    1. eval `ssh-agent`Startet den Agenten und wertet seine Ausgabe aus, die die Umgebungsvariablen SSH_AUTH_SOCKund setztSSH_AGENT_PID
    2. ssh-add fügt den angegebenen privaten Schlüssel dem Agenten hinzu, der anfangs 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 aus gestartet werden. Dies kann mit dem Befehl setx von Windows ausgeführt werden. Ich setze die Variablen einfach gemäß den vom Agenten abgerufenen.

Danach sind Sie fertig und der Agent ist aktiv und kann verwendet werden, sobald Sie eine Shell gestartet haben. Um sicherzustellen, dass der Agent beim Start von Windows gestartet wird, können Sie auch den Shell-Starter zum Windows-Autostart hinzufügen.

Sie können das Hinzufügen eines SSH-Schlüssels zum Agenten verschieben, bis Sie den Schlüssel zum ersten Mal verwenden. Dazu rufen Sie im RC-Skript der Shell nicht `ssh-add` auf, sondern fügen in der SSH-Konfiguration stattdessen` AddKeysToAgent yes` hinzu. schlimmchen vor 6 Jahren 1
0
Shadowmak

Was für mich funktionierte, war, Oracle cygwin ssh setup [1] zu folgen. Von dort aus möchten Sie Cygwin installieren und dann SSH konfigurieren. Ich verwende dieses Setup in 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.

Grundsätzlich Linux Shell unter Windows :-)

Prost,

Martin

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

Hallo, danke für die Antwort, aber das war nicht genau das, wonach ich gesucht habe. Es scheint aber auch interessant zu sein. shillner vor 7 Jahren 0