Estoy ssh en un host remoto (linux, fedora) y quiero hacer la operación ssh (git con bitbucket) allí. Hay ssh-agent ejecutándose en esa máquina,
$ ps -e|grep sh-agent
2203 ? 00:00:00 ssh-agent
pero cuando quiero git, me obliga a ingresar la frase de contraseña
$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa':
Nota: si opero en esa máquina localmente, no me pedirá que ingrese la frase de contraseña
Respuestas:
En mi opinión, la mejor manera de usar ssh
Antes de usar Git, agregue su clave a ssh-agent
Inicie ssh-agent si no se inició:
Agregue su clave privada usando ssh-add
Compruebe si se agrega la clave (el parámetro es una L minúscula):
Intenta conectarte a tu servidor Git:
Ahora puede usar Git sin indicaciones adicionales de frase de contraseña.
Otras maneras
https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
fuente
.bashrc
?eval
es necesario porque genera comandos que exportan variables de entorno como SSH_AUTH_SOCK que son necesarias. unix.stackexchange.com/questions/351725/…Si ya se está
ssh-agent
ejecutando, puede agregar la clave y deberá ingresar la frase de contraseña una vez, y solo una vez para esa sesión.No dice qué sistema operativo está utilizando, pero si resulta ser Linux y Gnome, la aplicación "Contraseñas y claves" (nombre CLI:)
seahorse
puede administrarlos para que se desbloqueen cuando inicie sesión (no se requiere frase de contraseña) . Otros entornos de escritorio Linux tienen sus propios administradores. No estoy seguro de qué otro sistema operativo hace aquí.fuente
La razón principal para solicitar la frase de contraseña es que su clave está encriptada, compare estos dos:
sin encriptar
encriptado
Entonces debe hacer uno de los siguientes:
~/.ssh/config
y especifique un archivo de identidad diferente (IdentityFile
).ssh-add -l
para enumerar todas sus identidades (luego compare con su local) y verifique con Stash si está usando las teclas correctas (existen en la configuración de Stash).Si conoce la frase de contraseña y desea automatizarla, intente la siguiente solución:
Solución de problemas:
eval "$(ssh-agent -s)"
).GIT_TRACE=1 git pull
o conGIT_SSH_COMMAND="ssh -vv"
(Git 2.3.0+) para depurar su comando nuevamente.Puede intentar omitir la solicitud de la frase de contraseña (que la redirigirá
true
), pero no creo que ayude. Si lo solicita, hay una razón para eso y básicamente es obligatorio.fuente
El
ssh-add
programa inicia un agente que puede contener (y proporcionar) su frase de contraseña. La forma de usarlo de forma remota es en un padre de su shell interactivo (para que el agente no se detenga).Aquí hay algunas preguntas relacionadas:
Ahora ... conectándose de forma remota , por regla general, su comando no inicia sesión como tal, por lo que no se inicia
ssh-add
. Podría solucionar este problema ejecutando un script quessh-agent
ssh-add
El punto débil es el segundo paso: aún se le solicitará la frase de contraseña, a menos que debilite su seguridad al usar una clave que no tiene frase de contraseña . Algunas personas hacen esto, la mayoría de las personas desaconsejan.
fuente
ssh-add
No inicia el agente. Se conecta a un agente que ya se está ejecutando.Puede eliminar fácilmente la frase de contraseña de su clave utilizando el siguiente comando
En el primer mensaje, ingrese la ruta del archivo (o presione Enter para cambiar el valor predeterminado) Segundo mensaje, ingrese la frase de contraseña anterior Siguiente mensaje, solo presione enter para desactivar la frase de contraseña
¡Parece que esta es la forma más fácil!
fuente
Todavía recibirá un mensaje de contraseña para descifrar la clave privada, incluso si se carga
ssh-agent
hasta que la clave pública SSH correspondiente se agregue al control remoto~/.ssh/authorized_keys
.Reproducir:
Lo suficientemente confuso. La contraseña de inicio de sesión SSH remota sería suficiente en este caso.
Puedo especular que esto evita agregar su clave pública (que se combina con la clave privada cifrada) sin conocer la contraseña de cifrado para la clave privada correspondiente. De todos modos, es un procedimiento de inicio de sesión único por remoto.
fuente