for - ssh id_rsa bad permissions
ssh "los permisos son demasiado abiertos" error (13)
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 confirmar un repositorio, 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?
0600 es lo que la mía se fija en (y está funcionando)
AFAIK los valores son:
700 para el directorio oculto ".ssh" donde se encuentra el archivo clave
600 para el archivo de claves "id_rsa"
Al usar Cygwin en Windows 8.1, hay que ejecutar un comando:
Usuarios de chgrp ~ / .ssh / id_rsa
Entonces se puede aplicar la solución publicada aquí, 400 o 600 está bien.
chmod 600 ~ / .ssh / id_rsa
Ref: http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8
En Windows 10, chmod y chgrp de cygwin no eran suficientes para mí. Tuve que hacer clic derecho en el archivo -> Propiedades -> Seguridad (pestaña) y eliminar todos los usuarios y grupos, excepto mi usuario activo.
Estoy usando VPC en EC2 y estaba recibiendo los mismos mensajes de error. Noté que estaba usando el DNS público. Cambié eso al DNS privado y vola !! funcionó...
Hay una excepción al requisito de permisos "0x00" en una clave. Si la clave es propiedad de la raíz y un grupo es propiedad de un grupo con usuarios en ella, entonces puede ser "0440" y cualquier usuario de ese grupo puede usar la clave.
Creo que esto funcionará con cualquier permiso en el 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.
Esto normalmente 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 alterar la clave.
Reglas similares se aplican a las restricciones de directorio .ssh.
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 de "Usuarios", incluso si su configuración regional utiliza una palabra diferente para los Usuarios.
Las claves solo deben ser legibles por usted:
chmod 400 ~/.ssh/id_rsa
El 600 también parece estar bien (de hecho, es mejor en la mayoría de los casos, ya que no es necesario cambiar los permisos de archivo para editarlo).
La parte relevante de la página del 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.
Me encontré con este error mientras jugaba con Ansible. He cambiado los permisos de la clave privada a 600 para resolver este problema. ¡Y funcionó!
chmod 600 .vagrant/machines/default/virtualbox/private_key
Mensaje interesante aquí. Los sistemas operativos son lo suficientemente inteligentes como para rechazar conexiones remotas si su clave privada es demasiado abierta. Comprende el riesgo de que los permisos para id_rsa estén completamente abiertos (lea, cualquier persona puede editarlos).
{Uno podría haber cambiado su cerradura primero y luego abrirla 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 un 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 manera la conexión será sin contraseña. En el caso, perl está instalado, también se puede usar el módulo net ssh.
lo que funciono para mi
Usuarios de chgrp FOLDER
chmod 600 FOLDER
para Win10 necesita mover su llave al directorio de inicio del usuario para sistemas operativos similares a Linux que necesita cambiar a 700 como o 600, etc.