Saltar al contenido

Ejecutar SSH Agent al iniciar Git Bash en Windows

Este team de especialistas luego de varios días de trabajo y de recopilar de datos, obtuvieron los datos necesarios, queremos que todo este artículo sea de utilidad en tu plan.

Solución:

En una sesión de git bash, puede agregar un script a ~/.profile o ~/.bashrc (con ~ por lo general se establece en %USERPROFILE%), para que dicha sesión lance automáticamente la ssh-agent. Si el archivo no existe, simplemente créelo.

Esto es lo que GitHub describe en “Trabajar con SSH key frases de contraseña”.

La sección “Inicio automático de ssh-agent en Git para Windows” de ese artículo tiene un script sólido 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 run desde el shell de comandos de Windows” tiene un script similar, pero me referiría principalmente al artículo de GitHub anterior, que es más sólido y está actualizado.

PD: estas instrucciones están en el contexto de un shell Bash abierto en el subsistema Linux de Windows 10 y no mencionan el enlace simbólico SSH keys generado en Windows con Bash en Ubuntu en Windows

1) Actualiza tu .bashrc agregando lo 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 

# 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 corre $ source ~/.bashrc para recargar su configuración.

Los pasos anteriores se tomaron 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. Use el siguiente comando para crear uno nuevo: .ssh$ touch config

4) Añadir siguiente a ~/.ssh/config

Host github.com- 
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


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

$ ssh github.com-

o

$ ssh @csexperimental.abc.com

Esta adición de key al agente de SSH debe realizarse una sola vez.

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

Nota:

  • si te enfrentas Bad owner or permissions on ~/.ssh/config luego actualice los permisos usando el comando chmod 600 ~/.ssh/config. Referencia: https://serverfault.com/a/253314/98910

  • Para que los pasos anteriores funcionen, necesitará OpenSSH v 7.2 y más reciente. Si tiene uno anterior, puede actualizarlo siguiendo los pasos mencionados en https://stackoverflow.com/a/41555393/936494

  • Los mismos detalles se pueden encontrar en la esencia de los problemas del agente SSH del subsistema Linux de Windows 10

Gracias.

Encontré que la forma más sencilla de lograr esto era usar Pageant como agente SSH y plink.

Debe 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 PuTTY.

Y necesitas Pageant corriendo con tu key cargado. Tengo un acceso directo al concurso en mi carpeta de inicio que carga mi SSH key cuando inicio sesión.

Cuando instala git-scm, puede especificarlo para usar tortoise/plink en lugar de OpenSSH.

El efecto neto es que puede abrir git-bash cuando lo desee y empujar/jalar sin tener que pedir frases de contraseña.

Lo mismo se aplica a las sesiones de Putty y WinSCP cuando el concurso tiene su key cargado. Hace la vida mucho más fácil (y segura).

Si te ha resultado provechoso este artículo, sería de mucha ayuda si lo compartes con otros seniors y nos ayudes a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *