openssh en Windows 7, ejecute ssh-add una vez para todas las instancias de cmd

openssh en Windows 7, ejecute ssh-add una vez para todas las instancias de cmd

Instalé openSSH como parte de la última distribución de cygwin. Mi objetivo es utilizar el agente ssh desde la consola de ventana nativa (cmd) para iniciar sesión sin contraseña en varias máquinas Linux.

Generé las claves y las cargué en los directorios apropiados en los hosts remotos y todo funciona bien.

El único problema que tengo es que cada vez que abro un nuevo cmd tengo que ejecutar 'ssh-add', ingresar la frase de contraseña y luego puedo iniciar sesión sin contraseña en los hosts remotos. ¿Hay alguna manera de superar este problema? La solución ideal sería ejecutar ssh-add sólo una vez.

Para su información: estoy abriendo el cmd como argumento para ssh-agent: 'ssh-agent cmd'

Respuesta1

De hecho, creé una herramienta llamada "ssh-agent-helper" que la invoca ssh-agenty la hace disponible globalmente, para que pueda usarla ssh-addo sshdesde gitcualquier terminal, por ejemplo, CMD, Bash, PowerShell, etc., sin ninguna configuración.

Lo puedes encontrar aquí:https://github.com/raeesbhatti/ssh-agent-helper

Respuesta2

No podrá ejecutar ssh desde la ventana de comandos nativa. Necesitará ejecutar la "ventana" de Cygwin bash para poder ejecutar cualquiera de los binarios de Cygwin.

Dicho esto, en las "ventanas" de Cygwin bash, debe guardar la salida de ssh-agent en un archivo y luego generar ese archivo en cualquiera de los scripts de inicio de sesión donde desee utilizar las credenciales almacenadas en caché. En la primera "ventana", ejecute:

$ 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

En cada uno de los demás, ejecuta:

$ . your_save_file

Todas las "ventanas" y procesos secundarios iniciados después de . your_save_fileejecutar el comando podrán usar las credenciales almacenadas en caché en ssh-agent. Cada vez que se detenga o elimine el agente ssh, o después de reiniciar el sistema, deberá ejecutar el primer conjunto de comandos nuevamente. Si tiene dudas sobre si las credenciales almacenadas en caché están disponibles o no en un shell en particular, ejecute

$ ssh-add -l            # Show list of loaded keys in ssh-agent

información relacionada