Creé claves como se indica en el tutorial de github, las registré con github e intenté usar ssh-agent explícitamente; sin embargo, git continúa pidiéndome mi frase de contraseña cada vez que intento hacer un pull o un push.
¿Qué podría ser la causa?
Creé claves como se indica en el tutorial de github, las registré con github e intenté usar ssh-agent explícitamente; sin embargo, git continúa pidiéndome mi frase de contraseña cada vez que intento hacer un pull o un push.
¿Qué podría ser la causa?
Respuestas:
Una vez que haya iniciado el agente SSH con:
eval $(ssh-agent)
Tienes que agregarle tu clave privada:
ssh-add
Esto le pedirá su frase de contraseña solo una vez, y luego se le permitirá presionar, siempre que haya cargado la clave pública en Github.
Para guardar la clave permanentemente en macOS:
ssh-add -K
Esto persistirá después de cerrarlo y volverlo a abrir almacenándolo en el llavero del usuario.
git pull, solicite nuevamente la contraseña
ssh-add -Kpersistirá después de que lo cierre y lo vuelva a abrir almacenándolo en el llavero del usuario.
ssh-add -Kda lo siguiente:unknown option -- K usage: ssh-add [options] [file ...] Options: -l List fingerprints of all identities. -L List public key parameters of all identities. -k Load only keys and not certificates. -c Require confirmation to sign using identities -t life Set lifetime (in seconds) when adding identities. -d Delete identity. -D Delete all identities. -x Lock agent. -X Unlock agent. -s pkcs11 Add keys from PKCS#11 provider.
-KEs específico de manzana. Ver help.github.com/articles/…
Esto me ha sucedido después de reiniciar desde la actualización de OS X El Capitan (10.11) a macOS Sierra (10.12). losssh-add solución funcionó temporalmente pero no persistiría durante otro reinicio.
La solución permanente era editar (o crear) ~/.ssh/configy habilitar la UseKeychainopción.
Host *
UseKeychain yes
Relacionado: macOS sigue preguntando mi frase de contraseña ssh desde que actualicé a Sierra
ssh-add -K /Users/***/.ssh/git/id_rsapero aún no funcionaba después del reinicio del terminal ... gracias.
Si lo ha intentado ssh-addy aún se le solicita que ingrese su frase de contraseña, intente usar ssh-add -K. Esto agrega tu frase de contraseña a tu llavero.
Actualización: si está utilizando macOS Sierra, es probable que deba realizar otro paso, ya que lo anterior podría dejar de funcionar. Agregue lo siguiente a su ~/.ssh/config:
Host *
UseKeychain yes
Intentaría lo siguiente:
~/.bashrcarchivo
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
zsh. Solo agregue esto a.zshrc
id_rsa. Si tiene un nombre personalizado, debe usar, por ejemplo. /usr/bin/ssh-add ~/.ssh/custom_filename
Lo que funcionó para mí en Windows fue (había clonado el código de un repositorio primero):
eval $(ssh-agent)
ssh-add
git pull
en ese momento me pidió por última vez mi frase de contraseña
Créditos: la solución fue tomada de /unix/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket
Intente agregar esto a su ~ / .ssh / config :
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
... suponiendo que su clave privada se llame id_rsa
Tuve un problema similar, pero las otras respuestas no solucionaron mi problema. Pensé en seguir adelante y publicar esto en caso de que alguien más tenga una configuración complicada como yo.
Resulta que tenía varias claves y Git estaba usando la incorrecta primero. Me solicitaría mi frase de contraseña, y la ingresaría, luego Git usaría una clave diferente que funcionaría (que no necesitaba ingresar la frase de contraseña).
¡Acabo de eliminar la clave que estaba usando para solicitarme una frase de contraseña y ahora funciona!
Parece que puede estar teniendo problemas con el propio agente SSH. Intentaría solucionar eso.
1) ¿Hiciste ssh-add para agregar tu clave a SSH?
2) ¿Está cerrando la ventana del terminal entre usos, porque si cierra la ventana deberá ingresar la contraseña nuevamente cuando la vuelva a abrir?
Si las soluciones anteriores no me funcionan, una cosa que debe verificar es que también tiene la clave pública (normalmente id_rsa.pub). Es inusual no hacerlo, pero esa fue la causa para mí.
Para crear su clave pública a partir de su clave privada:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
Intento diferentes soluciones pero nada ayuda. Pero estos pasos ( mi entorno GitBash SSH siempre me pide mi frase de contraseña, ¿qué puedo hacer? ) De las costuras de Bitbucket.com funcionan bien:
La idea es:
creas un ~/.bashrcarchivo
agregar script de seguimiento:
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
volver a ejecutar Bash
Otra posible solución que no se menciona anteriormente es verificar su control remoto con el siguiente comando:
git remote -v
Si el control remoto no comienza con git pero comienza con https, es posible que desee cambiarlo a git siguiendo el ejemplo a continuación.
git remote -v // origin is https://github.com/user/myrepo.git
git remote set-url origin git@github.com:user/myrepo.git
git remote -v // check if remote is changed