El cuadro de dialog Contraseña aparece cuando los permissions de la key privada SSH están configurados en 0600

Instalé mi key privada SSH en ~/.ssh/id_rsa y establecí sus permissions en 0600 . Cuando me conecto a un server SSH que usa mi key privada en Terminal.app a través de ssh , aparece un cuadro de dialog y me pide que ingrese mi contraseña para acceder al file id_rsa :

enter image description here

Veo el mismo dialog cuando me conecto a un server FTP con el cliente Interarchy GUI.

Actualización: Veo este dialog cada vez que me conecto independientemente de si marque "Recordar contraseña en mi llavero". Aparece dos veces más si se hace clic en el button Aceptar independientemente de lo que se ingrese en el campo de contraseña.

Cuando relajo estos permissions para, por ejemplo, 0640 , ya no veo un cuadro de dialog que me pida mi contraseña, pero ssh aborta con el siguiente error:

  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@ @@@@@@@@@
 @ ADVERTENCIA: ¡ARCHIVO DE CLAVES PRIVADAS NO PROTEGIDO!  @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@ @@@@@@@@@
 Los permissions 0640 para '/Users/myusername/.ssh/id_rsa' son demasiado abiertos.
 Se recomienda que sus files de key privada NO sean accesibles para otros.
 Esta key privada será ignorada.
 malos permissions: ignorar key: /Users/myusername/.ssh/id_rsa 

Creo que el dialog de contraseña es extremadamente molesto y estoy seguro de que debe haber alguna forma de evitar tener que cerrar este dialog. SSH necesita acceder al file id_rsa .

Nota: estoy ejecutando Mac OS X 10.6.8.

  • ¿Cómo maximizo una window verticalmente?
  • ¿Cómo crear un alias bash en OS X?
  • Ejecutar commands de shell con Automator: ¿cómo crear un droplet ejecutando un command "exec"?
  • cómo ejecutar mkdir en el directory / home /
  • Las tabs del interruptor de la terminal no funcionan Yosemite
  • Mostrando nombre incorrecto en la terminal
  • Ejecutar sudo desde una count no administrada
  • Cómo instalar Firefox usando la aplicación de terminal
  • 19 Solutions collect form web for “El cuadro de dialog Contraseña aparece cuando los permissions de la key privada SSH están configurados en 0600”

    Asegúrese de tener un id_rsa.pub o id_dsa.pub correspondiente en su directory ~/.ssh .

    Cuando tenía un id_rsa pero no un id_rsa.pub correspondiente, Mac OS X seguía apareciendo el dialog y recordaba que passowrd en mi llavero no hacía nada.

     cd ~/.ssh ssh-keygen -y -f id_rsa > id_rsa.pub 

    generé el file de key pública apropiado para mí.

    Si ya tenía su file público allí (cambie el nombre a otro nombre) y genere la key pública nuevamente usando el command anterior, notará que el generado y el anterior no son iguales. De alguna forma, las versiones anteriores de Mac OS X generaban una key pública que a Lion ya no le gustaba, generarla la corrige de nuevo.

    Para los curiosos, la key es exactamente la misma, la parte que cambia es que ya no hay una sección de "comentarios" después de la key en el file.

    Primero, ejecute ssh-add -K y verifique si esto soluciona su problema.

    Si no:

    • Se eliminó el file rsa_id.pub y se volvió a generar uno nuevo (debe estar en ~ / .ssh /):

       ssh-keygen -y -f id_rsa > id_rsa.pub 
    • Los permissions garantizados se establecieron en 600 para id_rsa e id_rsa.pub (deben estar en ~ / .ssh /):

       chmod 600 id_rsa* 
    • Ejecutó el siguiente command:

       ssh-add -K 

    Después de hacer esto, ya no se me solicitó dar mi contraseña de key privada. Esto parece poner la contraseña de la key privada en la location correcta del llavero para que OS X la use.

    En mi caso ssh-add -K no funcionó, tuve que especificar la key:

     ssh-add ~/.ssh/id_rsa 

    Para macOS 10.12 Sierra ssh-add -K necesita ejecutarse después de cada reinicio. Para evitar esto, cree ~/.ssh/config con este contenido.

     Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa 

    Apple ha agregado Technote 2449 que explica lo que sucedió.

    Antes de macOS Sierra, ssh presentaría un dialog preguntando por su contraseña y ofrecería la opción de almacenarla en el llavero. Esta interfaz de usuario fue desaprobada hace algún time y se eliminó.

    Editar: al parecer, no es necesario especificar un host y una key. Solo agregar esto es suficiente.

     AddKeysToAgent yes UseKeychain yes 

    Debe ingresar la frase de contraseña para la key privada en alguna parte, y OS X usa ssh-agent de manera pnetworkingeterminada.

    Si desea utilizar ssh-agent pero desea evitar el cuadro de dialog de la interfaz gráfica de usuario, puede usar ssh-add para agregar la frase de contraseña al agente y luego ssh como de costumbre.

    Si no desea usar ssh-agent y en su lugar tiene el indicador ssh para la contraseña, entonces desarme la variable de entorno SSH_AUTH_SOCK.

    Cuando relaja los permissions, la key se ignora. No ganarás nada haciendo esto.

    Si desea utilizar una key sin tener que ingresar una contraseña cada vez, tiene dos opciones.

    Si marca la casilla "Recordar contraseña en mi llavero", no tendrá que escribir la contraseña cada vez: se almacenará en el llavero con todas sus otras passwords. Esta es la opción recomendada.

    Puede crear un file de key privada sin una contraseña. Puede cambiar su file de key privada existente para que no esté protegido por contraseña (cambiar la contraseña solo afecta al file de key, no a la key en sí). Desde la command-line, ejecute ssh -p , ingrese la frase de contraseña existente y luego deje en blanco la nueva frase de contraseña. Existe un riesgo de security al tener una frase de contraseña vacía: cualquiera que pueda acceder a su file de key privada (por ejemplo, accediendo a sus copys de security) puede usarlo instantáneamente.

    si ha agregado su key privada al directory de origen ~ / .ssh, y ha ingresado ssh-add -K para agregarlo al llavero, y tiene sus contenidos de key pública copydos en .ssh / authorized_keys (para el correcto count) file en el server de destino el cuadro de dialog desaparece.

    es una combinación complicada de files, permissions, ubicaciones y commands, por lo que puede llevar time. No me apresuraría a llegar a una conclusión sobre los errores.

    Tengo exactamente el mismo problema en Lion (Mac OS X 10.7). Creo que es un error … Si la authentication ssh es una contraseña, el cliente pasa primero por la key pública, lo que es normal. Sin embargo, aunque elija save la frase de contraseña en el llavero (que no es necesaria para la authentication con contraseña) la próxima vez que se establezca una nueva connection ssh, se le volverá a solicitar la frase de contraseña …

    No debería haber necesidad de regenerar sus keys públicas. Simplemente puede hacer estos dos commands:

     chmod 0600 ~/.ssh/id_rsa.pub ssh-add ~/.ssh/id_rsa 

    Básicamente, debe ajustar los permissions en el file de key pública, y debe agregar su key al agente de authentication OSX.

    En la última versión de macOS (10.12.2 – Sierra) esta es una solución fácil. Simplemente edite su ~ / .ssh / config y habilite la opción UseKeychain:

     Host * UseKeychain yes 

    Guardar y resolver.

    Este problema ocurrió en mi sistema OS X 10.7.4 cuando ssh-agent murió. Un reinicio solucionó el problema. (Podría intentar reiniciar ssh-agent, pero no sé si Keychain es lo suficientemente inteligente como para elegir el nuevo socket ssh-agent).

    La regeneración de la key pública no parece funcionar para mí (10.8), ni genera una nueva key SSH. Si, por ejemplo, ejecuto git pull después de bloquear el llavero de inicio de session, aparece un cuadro de dialog para exigir la contraseña a la key en lugar de intentar recuperar la contraseña del llavero de inicio de session.

    Sin embargo, si mato a ssh-agent primero, se me solicita la contraseña de inicio de session de llavero que luego recupera la contraseña de la key SSH.

    1. Asegúrese de que ~ / .ssh / es chmod 700.

    2. Asegúrese de que los files ~ / .ssh / id * sean ambos chmod 600.

    3. Ejecutar / Aplicaciones / Utilidades / Keychain Access.app y reparar el llavero.

    4. Cerrar session. (Reiniciar no sería una idea terrible)

    5. Iniciar session

    6. Si el problema persiste, mueva sus files ~ / .ssh / id * existentes a su Escritorio e intente generar nuevas keys usando ssh-keygen -t dsa -f ~/.ssh/id_dsa -C you@youremail.tld y vea si el problema persiste. las nuevas keys funcionan mejor.

    Estoy en Lion, pero IIRC Snow Leopard funcionó de la misma manera.

    ps: cualquier persona que sugiera usar una frase de contraseña ssh en blanco debe ser forzada a llevar un letrero para que otras personas sepan que no deben seguir sus consejos.

    Otro hallazgo interesante es que si copy y pega el contenido del file PEM, es posible que la terminación no contenga el guión. Así que solo restring agregar la última línea como,

     -----END RSA PRIVATE KEY----- 

    Tenía que seguir los siguientes pasos para que funcione.

     # Change working directory cd ~/.ssh # Remove the old public key rm id_rsa.pub # Create a new public key ssh-keygen -y -f id_rsa > id_rsa.pub # Change permission chmod 600 id_rsa* # Add the key to ssh ssh-add id_rsa # Then finally test it (I used github) ssh -i id_rsa.pub git@github.com 

    El command final debería generar algo así como: ¡ Hi <user>! You've successfully authenticated, but GitHub does not provide shell access. Hi <user>! You've successfully authenticated, but GitHub does not provide shell access.

    Yo tuve el mismo problema. Parece que lo solucioné al hacer esto.

    1) Respaldado cambiando el nombre a los files id_dsa e id_dsa.pub.

    2) Se ejecutó un nuevo keygen con una frase de contraseña en blanco.

    Funciona con el trabajo de punto launchctl que supervisa un server remoto e inicia session desde ssh en una terminal.

    Tengo una function de authme de function rápida en mi terminal ya que tengo lo siguiente en mi .bash_profile

     #~/.bash_profile function authme { ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub } 

    Entonces, un authme rápido remoteserver.com copyrá la nueva key remota.

    Creo que el error está relacionado con la frase de contraseña que no se convirtió (mi viejo Snow Leopard no tenía ninguno).

    Intenta eso y mira si ayuda.

    No tardó más de 10 minutos en hacerlo. Pasé buscando en Google para siempre si había alguna otra mención de esto. ¡Este sitio fue el único!

    Owain.

    Tuve un problema similar. Resultó que la key privada que estaba usando estaba en un formatting incorrecto. Usé PuTTY Key Generator en mi máquina Win y ssh en OS X espera un formatting diferente – Abre el formatting SSH.

    Resultó que la herramienta que utilicé para generar esta key (PuTTY Key Generator) tenía una opción para convertir mi key priv al formatting requerido por Open SSH.

    Simple como:

    1. Abra PuTTY Key Gen
    2. Cargue su key privada
    3. Seleccione Conversiones> Exportar key OpenSSH.

    El file que saveá contiene su key privada original en el formatting adecuado (OpenSSH).

    Por favor asegúrese de que:

    1. Está utilizando formatting de pem para su key privada. Esto se debe a que Mac usa el cliente openssh que funciona con pem. ppk es el formatting patentado de putty y no es compatible con openssh. Puede convertir fácilmente ppk a pem utilizando putty keygen, en caso de que solo tenga ppk.
    2. Los permissions en su file de pem son 600. Las keys privadas solo deben ser accesibles para su propietario. Por lo tanto, si los permissions otorgan acceso de lectura a cualquier otra persona, se considerará una amenaza para la security.

    Esto debería resolver el problema.

    Use la tecla .pem en lugar de la tecla .ppk.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).