Pregunta 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 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?


1268
2018-02-14 02:02


origen


Respuestas:


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 manual (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.

2183
2018-02-14 02:05



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

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


77
2018-04-11 11:17



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 un identificación especial que siempre se refiere al grupo 'Usuarios', incluso si la configuración regional utiliza una palabra diferente para Usuarios.


29
2018-02-21 15:51



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


22
2018-02-14 02:04



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"


20
2017-11-13 07:57



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.


13
2017-11-13 17:18



lo que funcionó para mí

chgrp Usuarios CARPETA

CARPETA chmod 600


5
2018-03-26 22:54



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.


2
2018-05-13 07:35