Git sigue pidiéndome mi contraseña de clave ssh
Creé claves como se indica en el tutorial de github, las registré en github e intenté usar ssh-agent explícitamente; sin embargo, git continúa pidiéndome mi contraseña cada vez que intento hacer un pull o un push.
¿Qué podría ser la causa?
Una vez que haya iniciado el agente SSH con:
eval $(ssh-agent)
Haz lo siguiente:
Para agregarle su clave privada:
ssh-add
Esto le pedirá su contraseña solo una vez y luego se le permitirá presionar, siempre que haya cargado la clave pública en Github.
Para agregar y guardar su clave permanentemente en macOS :
ssh-add -K
Esto persistirá después de cerrarlo y volver a abrirlo almacenándolo en el llavero del usuario.
Si ve una advertencia sobre
deprecated
banderas, pruebe la nueva variante:ssh-add --apple-use-keychain
Para agregar y guardar su clave permanentemente en Ubuntu (o equivalente):
ssh-add ~/.ssh/id_rsa
Esto me ha estado sucediendo después de reiniciar desde que actualicé de OS X El Capitan (10.11) a macOS Sierra (10.12). La ssh-add
solución funcionó temporalmente pero no persistió durante otro reinicio.
La solución permanente fue editar (o crear) ~/.ssh/config
y habilitar la UseKeychain
opción.
Host *
UseKeychain yes
Relacionado: macOS sigue pidiendo mi contraseña ssh desde que actualicé a Sierra
Si lo ha intentado ssh-add
y todavía se le solicita que ingrese su frase de contraseña, intente usar ssh-add -K
. Esto agrega su frase de contraseña a su llavero.
Actualización: si estás usando macOS Sierra, es probable que tengas que realizar otro paso, ya que es posible que lo anterior ya no funcione. Agregue lo siguiente a su ~/.ssh/config
:
Host *
UseKeychain yes
Yo probaría lo siguiente:
- Iniciar GitBash
- Edita tu
~/.bashrc
archivo - Agregue las siguientes líneas al archivo.
SSH_ENV=$HOME/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
echo succeeded
chmod 600 ${SSH_ENV}
. ${SSH_ENV} > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
- Guarde y cierre el archivo
- Cerrar GitBash
- Reabrir GitBash
- Ingrese su contraseña