Solía recordar la frase de contraseña, pero ahora me la pide cada vez.
He leído que necesito regenerar la clave pública con este comando, lo que hice:
ssh-keygen -y -f id_rsa > id_rsa.pub
Pero no solucionó nada.
¿Cómo puedo hacer que macOS recuerde mi frase de contraseña nuevamente?
ssh
módulo habilitadozpretzorc
. De todos modos, no es necesario en macOS, y si está habilitado, le pedirá su contraseña incluso después de haberla agregadoUseKeychain
.ssh -v ...
para ver si tiene alguna información útil de depuración ...Respuestas:
En la última versión de macOS (10.12.2), esto es fácil de solucionar. Solo edita tu
~/.ssh/config
y habilita laUseKeychain
opción:No hay necesidad de cambiar nada más. Ahora todo funciona como solía funcionar antes de las últimas actualizaciones. No es necesario agregar claves a
ssh-agent
.Editar: es posible que aún deba ingresar su frase de contraseña una vez. Si no lo sabe, siga estas instrucciones para revelarlo.
fuente
Host *
bloque debe (casi) siempre colocarse al final de su~/.ssh/config
archivo. Cuandossh
busca configuraciones, utiliza el primer valor que encuentra. Por lo tanto, al poner el bloque comodín al final, actúa como un conjunto de valores predeterminados; puede anular la configuración de hosts específicos al especificarlos anteriormente en el archivo.Host *
encabezado. Simplemente agregue la línea únicaUseKeychain yes
en la parte superior de su.ssh/config
si desea que esto se aplique a todos los hosts.Yo tuve el mismo problema. El llavero MacOS Sierra sigue pidiendo la frase de contraseña. Su id_rsa debe estar encriptada con una frase de contraseña por seguridad. Luego intente agregarlo al llavero
ssh-add -K ~/.ssh/id_rsa
Si su clave está en otra carpeta que no sea
~/.ssh
entonces, sustitúyala por la carpeta correcta.Keychain ahora conoce tu clave ssh y, con suerte, todo funciona ahora (el mío sí)
fuente
ssh-add
con la-A
opción buscará en el llavero de MacOS cualquier contraseña para las identidades en cuestión. Creo que le avisará si las contraseñas no están en el llavero.Esto solucionó mi problema similar:
Esto almacena frases de contraseña en su llavero.
Actualización (gracias @EasyCo): esto funciona pero no persiste entre reinicios. @ solución de Jukka-Suomela en esta página no funciona en los reinicios. Puedes encontrar esa respuesta aquí:
https://superuser.com/a/1158050/234685
fuente
Solo tuve que ingresar la frase de contraseña correcta una vez y comenzó a funcionar. El problema era que no recordaba mi frase de contraseña SSH original, pero la recuperé siguiendo estos pasos desde Github:
fuente
Ninguna de las soluciones anteriores funcionó después de instalar Sierra sobre El Capitan en una nueva MacBook Pro. Sierra por diseño no guarda las claves SSH en el llavero.
Dos soluciones me funcionaron. Una es agregar el comando
ssh-add -A &> /dev/null
a ~ / .bash_profile. Cada vez que abra la terminal, se ejecutará este comando (la&> /dev/null
parte envía la salida del comando al archivo / dev / null).Una solución más complicada pero un poco más sofisticada es crear un plist con el comando que se ejecuta cada vez que el sistema operativo se inicia como se sugiere en Guardar claves SSH en el llavero macOS Sierra . Esto implica usar Xcode para crear el archivo.
fuente
Una solución es agregar lo siguiente a su archivo ~ / .ssh / config:
Tomado de: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Ver también: https://apple.stackexchange.com/a/264974/3810
fuente
Bad configuration option: usekeychain
error que recibo con UseKeychain (sin embargo, está en mayúscula). Pero yo era capaz de conseguir que funcione simplemente mediante la eliminación de esa línea y dejando AddKeysToAgent y IdentityFile (que todavía tiene que introducir la contraseña la primera vez). Esto es con macOS Sierra 10.12.6.which ssh
para asegurarse de que está utilizando/usr/bin/ssh
y no una versión de Fink o MacPorts, que estaría bajo algo como/usr/local/bin/ssh
o/opt/local/bin/ssh
Esta mañana, tuve el mismo problema que tú después de actualizar a Sierra. En mi caso, el
id_rsa
archivo estaba encriptado y después de descifrarlo funcionaba de maravilla.id_rsa
archivo está encriptado con el siguiente comando:cat ~/.ssh/id_rsa | head -2
Proc-Type: 4,ENCRYPTED
, está encriptada y podrías intentar descifrarlaid_rsa
archivo original ! Usa el comandocp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
rm ~/.ssh/id_rsa
) y reemplácela con la descifrada:mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa
Después de estos pasos, debería poder usar ssh nuevamente.
fuente
Intenté varias respuestas aquí, pero todavía tenía problemas con el paso de claves remotas (como cuando usaba capistrano). Para resolverlo, leí la nota técnica de Apple e hice de este mi archivo de configuración. ¡No más preguntas por mi contraseña!
https://developer.apple.com/library/content/technotes/tn2449/_index.html
fuente
También tuve este problema al intentar implementar algún código usando Capistrano . Muy frustrante. Aquí hay dos métodos que conozco para tratar este problema.
Método 1: agregue todas las claves conocidas al agente SSH.
Entonces, una solución que encontré es ejecutar
ssh-add
con la-A
opción, que agrega todas las identidades conocidas al agente SSH usando cualquier frase de contraseña almacenada en su llavero, como esta:Ahora esto funciona pero no persistirá entre reinicios. Entonces, si no quiere preocuparse nunca más por esto, simplemente abra el
~/.bash_profile
archivo de su usuario de esta manera:Y agregue esta línea al final:
Ahora, cuando abras una nueva ventana de Terminal, ¡todo debería estar bien!
Método 2: agregue solo las claves SSH que están en el llavero al agente.
Entonces, aunque la
ssh-add -A
opción debería funcionar para la mayoría de los casos básicos, recientemente me encontré con un problema en el que tenía 6-7 cajas Vagabundos (que usan claves / identidades SSH para acceder) configuradas en una máquina además de las más comunesid_rsa.pub
.En pocas palabras, terminé bloqueado de un servidor remoto debido a demasiados intentos fallidos basados en claves / identidades SSH ya que el acceso al servidor se basó en una contraseña y las claves / identidades SSH son claves / identidades SSH. Entonces, el agente SSH probó todas mis claves SSH, falló y ni siquiera pude acceder a la solicitud de contraseña.
El problema es que
ssh-add -A
solo agregará arbitrariamente cada clave / identidad SSH que tenga al agente, incluso si no es necesario hacerlo; como en el caso de las cajas Vagrant.Mi solución después de muchas pruebas fue la siguiente.
Primero, si tiene más claves / identidades SSH agregadas a su agente de las que necesita, como se muestra con,
ssh-add -l
entonces purgue todas del agente de la siguiente manera:Una vez hecho esto, inicie el agente SSH como un proceso en segundo plano así:
Ahora, se pone raro y no estoy muy seguro de por qué. En algunos casos, puede agregar específicamente la
~/.ssh/id_rsa.pub
clave / identidad al agente de la siguiente manera:Escriba su frase de contraseña, presione Returny debería estar listo para comenzar.
Pero en otros casos, simplemente ejecutar esto es suficiente para agregar la clave / identidad:
Si todo funcionó, escriba
ssh-add -l
y debería ver una sola clave / identidad SSH en la lista.¿Todo bien? Ahora abre tu
.bash_profile
:Y agregue esta línea al final; comente o elimine la
-A
versión si la tiene:Eso permitirá que la clave / identidad SSH se vuelva a cargar en el agente SSH en cada inicio / reinicio.
ACTUALIZACIÓN: Apple ahora ha agregado una
UseKeychain
opción a las opciones de configuración SSH abiertas y también considerassh-add -A
una solución.A partir de macOS Sierra 10.12.2, Apple (supongo) ha agregado una
UseKeychain
opción de configuración para configuraciones SSH. La comprobación de la página de manual (víaman ssh_config
) muestra la siguiente información:Lo que se reduce a que Apple vea que la solución se agrega
ssh-add -A
a la.bash_profile
suya como se explica en este boleto de Open Radar o se agregaUseKeychain
como una de las opciones en cada usuario~/.ssh/config
.fuente
La respuesta de Jukka Suomela es correcta, pero si está utilizando
openssh
instalado desdehomebrew
, entonces también debe desinstalarlo con:... para volver al sistema predeterminado openssh, porque el homebrew no admite la
UseKeychain
entrada de configuración ssh.fuente
Intenté todas las soluciones sugeridas aquí, pero no tengo un llavero configurado en mi Mac.
Agregarme a la siguiente línea en el
.ssh/config
archivo superior tanto en la máquina local como en la remota funcionó para mí.fuente
Necesita
.plist
agregar un archivo~/Library/LaunchAgents/
para ejecutarsessh-add -A
en cada inicio de macOS.Hay un solo comando que hace esto (de SSH-keys-in-macOS-Sierra-keychain ) que es:
fuente