Configuración del agente SSH en Windows con cygwin

Configuración del agente SSH en Windows con cygwin

He creado esta pregunta solo como recordatorio, ya que normalmente configuro un agente SSH solo una vez cada pocos años.

Entonces, ¿cómo se puede configurar un agente SSH en Windows, suponiendo el uso de un entorno de shell similar a Linux?

Respuesta1

Mi configuración actual:

  • Windows 10 Pro
    • También debería funcionar con versiones anteriores de Windows que proporcionan el comando setx (Win7)
  • concha de babun(zsh)
    • está basado en cygwin

Qué he hecho:

Decidí agregar los comandos de inicio al archivo .zshrc para que se ejecute cada vez que inicio un nuevo shell. Así que aquí están los comandos:

# 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. El comando pgrep busca agentes SSH en ejecución. Si uno se está ejecutando, generará la identificación del proceso y omitirá el inicio de otro agente.
  2. Si no se puede encontrar ninguno, se inicia el agente y se exportan las variables de entorno.
    1. eval `ssh-agent`inicia el agente y evalúa su salida, que establece las variables de entorno SSH_AUTH_SOCKySSH_AGENT_PID
    2. ssh-addagrega la clave privada especificada al agente, que inicialmente solicitará la frase de contraseña de la clave privada.
    3. Dado que las variables mencionadas anteriormente solo se configuran para el proceso de shell iniciado, es necesario configurarlas globalmente para que el usuario esté disponible para otros shells y otras herramientas que no se inician desde el shell. Esto se puede hacer usando el comando setx de Windows. Simplemente configuro las variables según las recuperadas del agente.

Después de eso, estará todo listo y el agente se estará ejecutando y podrá utilizar tan pronto como inicie un shell por primera vez. Para asegurarse de que el agente se inicie con el inicio de Windows, también puede agregar el iniciador de shell al inicio automático de Windows.

Respuesta2

Para mí, lo que funcionó es seguir la configuración ssh de Oracle cygwin [1]. A partir de ahí, le interesa instalar Cygwin y luego configurar SSH. Estoy usando esta configuración en el trabajo para todo tipo de QE para conectarme a las máquinas y realizar pruebas allí. Puedes ejecutar la mayoría de los comandos de Linux, así como usar los comandos de Windows, lo cual es bastante bueno.

Básicamente shell de Linux en Windows :-)

Salud,

Martín

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

información relacionada