Iniciar un agente SSH cuando se ejecuta Git Bash en Windows

Yo uso git bash. Tengo que usar

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

Cada vez que lanzo un nuevo git bash.

¿Hay una manera de instalar un agente ssh para siempre? ¿O las ventanas tienen una buena manera de administrar las claves ssh?

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

95
23 авг. set zchholmes 23 ago. 2013-08-23 16:37 '13 a las 16:37 2013-08-23 16:37
@ 6 respuestas

En una sesión de git bash, puede agregar un script a ~/.profile o ~/.bashrc ( con ~ generalmente establecido en %USERPROFILE% ) para que esta sesión inicie automáticamente ssh-agent . Si el archivo no existe, simplemente créelo.

Esto es lo que GitHub describe en la sección " Trabajar con frases clave de SSH ".

En la sección " Inicio automático de ssh-agent en Git para Windows " de este artículo hay una secuencia de comandos confiable que verifica si el agente está funcionando o no. A continuación se muestra solo un fragmento, consulte el artículo de GitHub para obtener una solución completa.

93
23 авг. La respuesta se da VonC 23 ago. 2013-08-23 16:50 '13 a las 16:50 2013-08-23 16:50

PD: Estas instrucciones se encuentran en el contexto del shell Bash, que está abierto en el subsistema Linux de Windows 10, y no menciona los enlaces de claves SSH generados en Windows con el Bash en Ubuntu en Windows

1) Actualice .bashrc para agregar lo siguiente

 # 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 ejecute $ source ~/.bashrc para volver a cargar la configuración.

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

3) Crea un archivo de configuración SSH si falta. Use el siguiente comando para crear uno nuevo: .ssh$ touch config

4) Agregue lo siguiente 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 $ ssh-add ~/.ssh/id_work_gmail , y luego puede conectarse a su cuenta github o host remoto mediante ssh. Por ejemplo en el contexto de los ejemplos de código anteriores:

border=0
 $ ssh github.com-<YOUR_GITHUB_USERNAME> 

o

 $ ssh <USER>@csexperimental.abc.com 

Esta adición clave al agente SSH se debe realizar solo una vez.

6) Ahora cierre la sesión de su sesión de bash en el subsistema de Windows Linux, es decir, cierre la sesión de todas las consolas Bash nuevamente y ejecute la nueva consola de nuevo e intente SSH en su host Github u otro host configurado en el archivo de configuración de SSH y debería funcionar sin ningún paso adicional.

Nota:

Gracias

14
08 авг. Respuesta dada por Jiggneshh Gohel 08 ago. 2017-08-08 11:14 '17 a las 11:14 2017-08-08 11:14

Encontré la forma más inteligente de lograrlo: use Pageant como agente de SSH y plink.

Debe configurar una sesión de masilla para el nombre de host que se utiliza en su control remoto.

También necesitará plink.exe, que puede descargarse desde el mismo sitio que putty.

Y necesitas que la página se ejecute con la tecla cargada. Tengo un acceso directo para mostrar en mi carpeta de inicio que carga mi clave SSH al iniciar sesión.

Cuando instala git -scm, puede especificarlo para usar turtle / plink, no OpenSSH.

El efecto neto es que puedes abrir git-bash cuando quieras, y hacer clic / tirar sin cuestionar las frases de código.

Lo mismo se aplica a las sesiones de masilla y WinSCP cuando su clave se carga al momento de cargar su sitio. Hace la vida mucho más fácil (y más segura).

5
04 марта '15 в 3:57 2015-03-04 03:57 La respuesta fue dada por Alasdair el 4 de marzo de 2015 a las 3:57 2015-03-04 03:57

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

Suposiciones

  • ssh-agente en tránsito
  • shh-add en ruta (como cuando se selecciona la opción "RED" 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)
1
28 июля '17 в 8:14 2017-07-28 08:14 Erez A. Korn respondió el 28 de julio de 2017 a las 8:14 2017-07-28 08:14

Una solución simple de dos líneas de esta respuesta :

Para sh , bash , 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` 
0
13 окт. La respuesta es Oklas el 13 de octubre. 2017-10-13 23:09 '17 a las 11:09 pm 2017-10-13 23:09

Crea uno nuevo . archivo bashrc en el directorio ~.

Allí puede poner los comandos que desea ejecutar, cada vez que ejecute bash

0
23 авг. respuesta dada por el usuario2711262 23 ago. 2013-08-23 16:50 '13 a las 16:50 2013-08-23 16:50

Otras preguntas sobre las etiquetas o Haz una pregunta