claves_autorizadas para múltiples usuarios chroot con el mismo directorio de inicio

claves_autorizadas para múltiples usuarios chroot con el mismo directorio de inicio

Estamos ejecutando CentOS 6.9 con OpenSSH_5.3p1 y creamos cuentas chroot para usuarios externos con el mismo directorio de inicio (montado en htdocs). El problema es que el archivo .ssh/authorized_keys2es propiedad del primer usuario (y esto ya funciona). ¿Cómo puedo hacer que funcione para otro usuario?

Intenté agregar un AuthorizedKeysFilesshd_config con múltiples rutas de archivo y recibí el error garbage at end of line.

Intenté agregar una AuthorizedKeysFileentrada sshd_configen el bloque de coincidencias del segundo usuario y recibí el error 'AuthorizedKeysFile' is not allowed within a Match block.

No puedo cambiar el directorio de inicio porque, de lo contrario, la ruta es diferente de la ruta real para el desarrollo.

¿Alguna sugerencia de cómo solucionarlo? ¿Es posible que tenga que actualizar OpenSSH a una versión más nueva que admita múltiples entradas AuthorizedKeysFile(creo que tengo que compilarlo con rpm)? ¿Qué pasa con las actualizaciones de seguridad posteriores?

Respuesta1

Una opción es utilizar tokens para darle a cada usuario un authorized_keysarchivo único.

Dehombre sshd_config:

AuthorizedKeysFile

Especifica el archivo que contiene las claves públicas que se pueden utilizar para la autenticación de usuarios. El formato se describe en la sección FORMATO DE ARCHIVO AUTHORIZED_KEYS de sshd(8). AuthorizedKeysFile puede contener tokens del tipo %Tque se sustituyen durante la configuración de la conexión. Se definen los siguientes tokens: %%se reemplaza por un literal %, %hse reemplaza por el directorio de inicio del usuario que se autentica y%ues reemplazado por el nombre de usuario de ese usuario. Después de la expansión, AuthorizedKeysFilese considera una ruta absoluta o relativa al directorio de inicio del usuario. Es posible que se muestren varios archivos, separados por espacios en blanco. Alternativamente, esta opción puede configurarse para noneomitir la verificación de claves de usuario en los archivos. El valor predeterminado es .ssh/authorized_keys .ssh/authorized_keys2.

El énfasis es mío.

Entonces puedes configurar:

AuthorizedKeysFile    .ssh/%u_authorized_keys

Luego, para el usuario, foocree un authorized_keysarchivo .ssh/foo_authorized_keys.

Una nota sobre los permisos

Dehombre sshd:

~/.ssh/authorized_keys
...
Si otros usuarios pueden escribir en este archivo, el ~/.sshdirectorio o el directorio de inicio del usuario, entonces el archivo podría ser modificado o reemplazado por usuarios no autorizados. En este caso, sshd no permitirá su uso a menos que la StrictModes opción esté configurada en no.

Por lo tanto, es posible que tengas que dejar las llaves afuera .ssh/o configurarlas StrictModesen no. Si configura StrictModespara noasegurarse de que otro usuario no pueda crear una authorized_keyspara otra persona o eliminar las claves autorizadas del otro usuario. Probablemente sea mejor hacer algo como:

AuthorizedKeysFile    .ssh_%u/authorized_keys

Cree un directorio .ssh_foo/para el usuario foo, que solo foopueda leer/escribir.


Puedes elegir si quieres permitir también .ssh/authorized_keysusando

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

Esto permitirá que la forma "normal" authorized_keyssiga funcionando, y el authorized_keysarchivo debe ser propiedad de su usuario y tener los permisos correctos o será ignorado. Aún así, considere que no debería ser posible crear un authorized_keysarchivo para otro usuario, lo que podría significar simplemente tocar el archivo como raíz para que esté vacío.

información relacionada