Mal propietario o permisos en el archivo de configuración ssh

Mal propietario o permisos en el archivo de configuración ssh

Me he dado cuenta de que ya no puedo conectarme al servidor web en x.x.202.50. Ayer cambié el siguiente archivo de configuración ssh: /share/homes/admin/.ssh/configagregando las siguientes configuraciones:

# ssh (secure shell) configuration file
Host webserver
    HostName x.x.212.50
    User user1
    IdentityFile ~/.ssh/id_rsa `

La razón por la que hice esto es para habilitar el inicio de sesión con clave para fines de sincronización (con Unison).

Ahora, cuando intento conectarme al servidor recibo el siguiente error:

Mal propietario o permisos en /share/homes/admin/.ssh/config

Hago la conexión Puttydesde Windows 10 y desde un servidor Linux a otro servidor Linux.

Necesito conectarme al servidor porque estoy involucrado en un proyecto y no sé cómo hacerlo. ¿Alguien sabe cómo hacer esto?

Respuesta1

Debe cambiar los permisos del directorio .ssh. Ejecute lo siguiente (descubrí que 600 no lo solucionará por sí solo):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

Respuesta2

La regla general para los archivos que pueden afectar la seguridad (claves privadas, archivos de configuración, claves autorizadas) es que nadie más que el propietario debe poder escribir en ellos (¡las claves privadas no deben ser accesibles!).

El error proviene delcódigo openshabajo:

if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
    (sb.st_mode & 022) != 0))
      fatal("Bad owner or permissions on %s", filename);

Entonces, traducirlo al inglés significa que el archivo de configuración debe ser propiedad de root o del usuario que lo ejecuta sshy ningún grupo u otros usuarios pueden escribirlo.

Como ya se señaló en los comentarios, probablemente le otorgaste estos permisos a alguien de alguna manera, por lo que eliminarlos debería solucionar el problema:

chmod go-w /share/homes/admin/.ssh/config

Respuesta3

Tengo una máquina Linux de un solo usuario que comparte el mismo directorio '.ssh' con la cuenta raíz. /root/.ssh es un enlace simbólico que apunta a la carpeta '/home/username/.ssh' del usuario.

Recientemente agregué un archivo ~/.ssh/config y esto provocó que SSH me diera el mensaje de error al invocar SSH y SSHFS desde la cuenta raíz. La solución para mí fue hacer lo siguiente:

chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config

Sin embargo, esto es un problema cuando tengo que editar el archivo, ya que requiere que modifique los permisos y la propiedad del archivo y luego los voltee. Pero ese es mi problema porque elijo compartir la carpeta entre las cuentas. Creé algunos scripts de shell para cambiar los permisos solo al invocar el comando 'sshfs' o 'ssh' desde la cuenta de usuario root.

Respuesta4

Las otras respuestas sólo resuelven el problema si hay un permiso incorrecto. Sin embargo, en mi caso el problema fue que el propietario del archivo era incorrecto. Puede ejecutar ls -l ~/.sshpara ver la información sobre permisos y propietarios. El propietario del archivo se puede ver en la tercera columna. Si está mal ejecuta:

chown <newOwner> <fileName>

información relacionada