Los permisos de ssh “son demasiado abiertos”

Tuve un problema con mi mac donde ya no podía guardar ningún tipo de archivo en el disco. Tuve que reiniciar OSX lion y restablecer los permisos en archivos y acls.

Pero ahora cuando quiero comprometer un repository recibo el siguiente error de ssh:

Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. 

¿Qué niveles de permisos debo dar al archivo id_rsa?

Las llaves deben ser solo legibles por usted:

 chmod 400 ~/.ssh/id_rsa 

600 parece estar bien también (de hecho, es mejor en la mayoría de los casos, porque no necesita cambiar los permisos de archivo para editarlo).

La parte relevante de la página de man ssh ( man ssh )

  ~/.ssh/id_rsa Contains the private key for authentication. These files contain sensitive data and should be readable by the user but not accessible by others (read/write/execute). ssh will simply ignore a private key file if it is accessible by others. It is possible to specify a passphrase when generating the key which will be used to encrypt the sensitive part of this file using 3DES. ~/.ssh/identity.pub ~/.ssh/id_dsa.pub ~/.ssh/id_ecdsa.pub ~/.ssh/id_rsa.pub Contains the public key for authentication. These files are not sensitive and can (but need not) be readable by anyone. 

Usando Cygwin en Windows 8.1, hay que ejecutar un comando:

chgrp Users ~ / .ssh / id_rsa

Entonces la solución publicada aquí se puede aplicar, 400 o 600 está bien.

chmod 600 ~ / .ssh / id_rsa

Ref: http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8

La solución independiente de la configuración regional que funciona en Windows 8.1 es:

 chgrp 545 ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa 

GID 545 es una ID especial que siempre se refiere al grupo ‘Usuarios’, incluso si la configuración regional usa una palabra diferente para Usuarios.

0600 es en lo que está establecido el mío (y está funcionando)

AFAIK los valores son:

700 para el directorio oculto “.ssh” donde se encuentra el archivo de claves

600 para el archivo de clave “id_rsa”

Hay una excepción al requisito de permisos “0x00” en una clave. Si la clave pertenece a la raíz y pertenece al grupo de un grupo con usuarios, entonces puede ser “0440” y cualquier usuario de ese grupo puede usar la clave.

Creo que esto funcionará con todos los permisos del conjunto “0xx0” pero no he probado todas las combinaciones con cada versión. He intentado 0660 con 5.3p1-84 en CentOS 6, y el grupo no es el grupo primario del usuario sino un grupo secundario, y funciona bien.

Normalmente, esto no se haría para la clave personal de alguien, sino para una clave utilizada para la automatización, en una situación en la que no desea que la aplicación pueda interferir con la clave.

Se aplican reglas similares a las restricciones del directorio .ssh.

lo que funcionó para mí

chgrp Usuarios CARPETA

CARPETA chmod 600

Interlogando mensaje aquí. Los sistemas operativos son lo suficientemente inteligentes como para negar conexiones remotas si su clave privada está demasiado abierta. Comprende el riesgo donde los permisos para id_rsa están abiertos (leer, es editable por cualquier persona).

{Uno podría haber cambiado su candado primero y luego abrirlo con las llaves que ya tenía. }

 cd ~/.ssh chmod 400 id_rsa 

PD:

Mientras trabajamos en los servidores múltiples (no de producción), la mayoría de nosotros sentimos la necesidad de conectar el servidor remoto con ssh. Una buena idea es tener un pice de código de nivel de aplicación (puede ser java usando jsch) para crear confianzas ssh entre servidores. De esta forma, la conexión no tendrá contraseña. En caso de que se haya instalado perl, también se puede usar el módulo net ssh.

Me encontré con este error mientras jugaba con Ansible. Cambié los permisos de la clave privada a 600 para resolver este problema. ¡Y funcionó!

 chmod 600 .vagrant/machines/default/virtualbox/private_key 

En Windows 10, chmod y chgrp de cygwin no fueron suficientes para mí. Tuve que hacer clic derecho en el archivo -> Propiedades -> Seguridad (pestaña) y eliminar todos los usuarios y grupos a excepción de mi usuario activo.

proporcione 400 permisos, ejecute el comando debajo

 chmod 400 /Users/username/.ssh/id_rsa 

enter image description here

Estoy usando VPC en EC2 y recibía los mismos mensajes de error. Me di cuenta de que estaba usando el DNS público. Cambié eso al DNS privado y vola !! funcionó…