unable start for error enable windows ssh git-bash

windows - for - unable to start ssh-agent service, error:1058



Ejecutar el Agente SSH al iniciar Git Bash en Windows (6)

Estoy usando git bash. Tengo que usar

eval `ssh-agent.exe` ssh-add /my/ssh/location/

cada vez que empiezo un nuevo git bash.

¿Hay alguna forma de configurar el agente ssh de forma permanente? ¿O Windows tiene una buena forma de administrar las claves ssh?

Soy un chico nuevo, por favor dame un tutorial detallado, ¡gracias!


Como no me gusta usar Putty en Windows como una solución alternativa, creé una utilidad muy simple ssh-agent-wrapper . Escanea tus carpetas .ssh y agrega todas tus claves al agente. Simplemente debe ponerlo en la carpeta de inicio de Windows para que funcione.

Suposiciones

  • ssh-agent en camino
  • shh-add in path (ambos eligiendo la opción "ROJO" al instalar git
  • las claves privadas están en la carpeta% USERPROFILE% /. ssh
  • los nombres de las claves privadas comienzan con id (por ejemplo, id_rsa)

Crea un nuevo archivo .bashrc en tu ~ directorio.

Allí puedes poner tus comandos que quieras ejecutar cada vez que comiences el bash


En una sesión de git bash, puede agregar una secuencia de comandos a ~/.profile o ~/.bashrc ( con ~ generalmente se establece en %USERPROFILE% ), para que dicha sesión se inicie automáticamente ssh-agent . Si el archivo no existe, solo créelo.

Esto es lo que GitHub describe en " Trabajo con contraseñas de clave SSH ".

La sección " Auto-launching ssh-agent en Git for Windows " de ese artículo tiene un script robusto que verifica si el agente se está ejecutando o no. A continuación se muestra solo un fragmento, consulte el artículo de GitHub para obtener la solución completa.

# This is just a snippet. See the article above. if ! agent_is_running; then agent_start ssh-add elif ! agent_has_keys; then ssh-add fi

Otros recursos:

" Hacer que ssh-agent funcione con git desde el shell de comandos de Windows " tiene un script similar, pero me referiría al artículo anterior de GitHub principalmente, que es más robusto y está actualizado.


Encontré que la manera más fácil de lograr esto era usar el concurso como el agente SSH y ponerlo.

Necesita tener una sesión de masilla configurada para el nombre de host que se utiliza en su control remoto.

También necesitará plink.exe que se puede descargar desde el mismo sitio que la masilla.

Y necesitas un concurso con tu llave cargada. Tengo un acceso directo al concurso en mi carpeta de inicio que carga mi clave SSH cuando inicio sesión.

Cuando instala git-scm, puede especificar que use tortuga / plink en lugar de OpenSSH.

El efecto neto es que puedes abrir git-bash siempre que lo desees y presionar / jalar sin ser cuestionado por las frases de contraseña.

Lo mismo se aplica a las sesiones de putty y WinSCP cuando el concurso tiene cargada la tecla. Hace la vida muchísimo más fácil (y segura).


PD: Estas instrucciones están en el contexto de un intérprete de comandos de Bash abierto en el Subsistema de Linux de Windows 10 y no menciona las claves de sincronización de SSH generadas en Windows con Bash en Ubuntu en Windows

1) Actualice su .bashrc agregando siguiente en él

# Set up ssh-agent SSH_ENV="$HOME/.ssh/environment" function start_agent { echo "Initializing new SSH agent..." touch $SSH_ENV chmod 600 "${SSH_ENV}" /usr/bin/ssh-agent | sed ''s/^echo/#echo/'' >> "${SSH_ENV}" . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null kill -0 $SSH_AGENT_PID 2>/dev/null || { start_agent } else start_agent fi

2) Luego ejecuta $ source ~/.bashrc para volver a cargar tu configuración.

Los pasos anteriores se han tomado de https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch

3) Cree un archivo de configuración SSH, si no está presente. Utilice el siguiente comando para crear uno nuevo: .ssh$ touch config

4) Agregue los siguientes a ~/.ssh/config

Host github.com-<YOUR_GITHUB_USERNAME> HostName github.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_work_gmail # path to your private key AddKeysToAgent yes Host csexperimental.abc.com IdentityFile ~/.ssh/id_work_gmail # path to your private key AddKeysToAgent yes <More hosts and github configs can be added in similar manner mentioned above>

5) Agregue su clave al agente SSH usando el comando $ ssh-add ~/.ssh/id_work_gmail y luego debería poder conectarse a su cuenta github o host remoto usando ssh. Por ejemplo, en el contexto de los ejemplos de código anteriores:

$ ssh github.com-<YOUR_GITHUB_USERNAME>

o

$ ssh <USER>@csexperimental.abc.com

Se debe exigir que esta adición de clave al agente SSH se realice solo una vez.

6) Ahora cierre la sesión de Bash en Windows Linux Subsistema, es decir, salga de todas las consolas Bash nuevamente y vuelva a iniciar una nueva consola e intente SSH con su host Github u otro host configurado en el archivo de configuración SSH y debería funcionar sin necesidad de ningún extra pasos.

Nota:

Gracias.


Solución simple de dos cadenas a partir de esta respuesta :

Para sh , bash , etc:

# ~/.profile if ! pgrep -q -U `whoami` -x ''ssh-agent''; then ssh-agent -s > ~/.ssh-agent.sh; fi . ~/.ssh-agent.sh

Para csh , tcsh , etc.

# ~/.schrc sh -c ''if ! pgrep -q -U `whoami` -x ''ssh-agent''; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'' eval `cat ~/.ssh-agent.tcsh`