Estoy usando git bash. Tengo que usar
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
cada vez que comienzo un nuevo git bash.
¿Hay alguna manera de configurar el agente ssh de forma permanente? ¿O Windows tiene una buena manera de administrar las claves ssh?
Soy un chico nuevo, por favor dame un tutorial detallado, ¡gracias!
/my/ssh/location/
igual a algo como/c/Users/Foobar/.ssh/
?Respuestas:
En una sesión de Git Bash, se puede añadir una secuencia de comandos para
~/.profile
o~/.bashrc
( con el~
que se suele establecer a%USERPROFILE%
), a fin de que dicha sesión se inicie automáticamente alssh-agent
. Si el archivo no existe, simplemente créelo.Esto es lo que GitHub describe en " Trabajar con frases clave de SSH ".
La sección " Inicio automático de ssh-agent en Git para Windows " de ese artículo tiene una secuencia de comandos robusta que comprueba 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.
Otros recursos:
" Hacer que ssh-agent funcione con git ejecutado desde el shell de comandos de Windows " tiene una secuencia de comandos similar, pero me referiría principalmente al artículo de GitHub anterior, que es más robusto y actualizado.
fuente
PD: Estas instrucciones están en el contexto de un shell Bash abierto en Windows 10 Linux Subsystem y no menciona las claves SSH de enlace simbólico generadas en Windows con Bash en Ubuntu en Windows
1) Actualice su .bashrc agregando lo siguiente en él
2) Luego ejecuta
$ source ~/.bashrc
para recargar 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. Use el siguiente comando para crear uno nuevo:
.ssh$ touch config
4) Añadir siguiente a
~/.ssh/config
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:o
Esta adición de clave al agente SSH debe realizarse solo una vez.
6) Ahora cierre la sesión de su sesión de Bash en el subsistema de 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 configurado en el archivo de configuración SSH y debería funcionar sin necesidad de ningún extra pasos.
Nota:
Si enfrenta
Bad owner or permissions on ~/.ssh/config
, actualice los permisos con el comandochmod 600 ~/.ssh/config
. Referencia: https://serverfault.com/a/253314/98910Para que los pasos anteriores funcionen, necesitará OpenSSH v 7.2 y versiones posteriores . Si tiene uno anterior, puede actualizarlo siguiendo los pasos mencionados en https://stackoverflow.com/a/41555393/936494
Los mismos detalles se pueden encontrar en los problemas básicos del agente SSH del subsistema de Windows 10 Linux
Gracias.
fuente
>> "${SSH_ENV}"
? ¿No debería ser así> "${SSH_ENV}"
? El tuyo funciona, por supuesto, pero termina con un~/.ssh/environment
archivo cada vez más largo y lento , porque (¡como lo creo actualmente !?) no hay razón ... ¡Muchas, muchas gracias! Siento que este script solo debe incluirse en el valor predeterminado.bashrc
para WSL Ubuntu, ¡es muy útil!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 necesita que se ejecute el concurso con su clave 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 puede abrir git-bash cuando lo desee y empujar / tirar sin ser desafiado por frases de contraseña.
Lo mismo se aplica con las sesiones de masilla y WinSCP cuando el concurso tiene su clave cargada. Hace la vida mucho más fácil (y segura).
fuente
Como no me gusta usar masilla en Windows como solución alternativa, creé una utilidad muy simple ssh-agent-wrapper . Escanea tus carpetas .ssh y agrega todas tus claves al agente. Simplemente necesita ponerlo en la carpeta de inicio de Windows para que funcione.
supuestos :
fuente
No pude lograr que esto funcionara con la mejor respuesta, probablemente porque soy un novato de PC y me falta algo obvio. Pero solo para su información en caso de que ayude a alguien tan desafiado como yo, lo que FINALMENTE funcionó fue a través de uno de los enlaces aquí (referenciado en las respuestas). Esto implicó simplemente pegar lo siguiente a mi
.bash_profile
:Probablemente tengo algo configurado extraño, pero no tuve éxito cuando lo agregué a mi
.profile
o.bashrc
. El otro desafío real que he encontrado es que no soy administrador en esta computadora y no puedo cambiar las variables de entorno sin que sea aprobado por TI, por lo que esta es una solución para aquellos que no pueden acceder a eso.Sabes que está funcionando si se te solicita tu contraseña ssh cuando abres git bash. Aleluya algo finalmente funcionó.
fuente
Ponga esto en su ~ / .bashrc (o en un archivo que se haya obtenido de él), lo que evitará que se ejecute varias veces innecesariamente por shell:
Y luego agregue "AddKeysToAgent yes" a ~ / .ssh / config:
ssh a su servidor (o git pull) normalmente y solo se le pedirá una contraseña / frase de contraseña una vez por sesión.
fuente
Cree un nuevo archivo .bashrc en su directorio ~.
Allí puede poner sus comandos que desea ejecutar cada vez que inicie el bash
fuente
.bashrc
archivo (comoecho test
y verifique si está cargado cuando ejecuta Git Bash.).bashrc
en su carpeta de usuario, por ejemploC:\Users\john
.Solución simple de dos cadenas de esta respuesta :
Para sh , bash , etc.
Para csh , tcsh , etc.
fuente