¿Las capacidades de registro SSH son equivalentes al registro su para la autenticación de clave privada / pública?

11

Aquí en el trabajo, tenemos una cuenta de inicio de sesión compartida no root en UNIX que se usa para administrar una aplicación en particular. La política es no permitir inicios de sesión directos a la cuenta compartida; debe iniciar sesión como usted mismo y usar el comando "su" para cambiar a la cuenta compartida. Esto es para fines de registro / seguridad.

Comencé a usar la autenticación de clave pública / privada SSH con un agente para permitirme ingresar mi contraseña una vez al día y dejar que el reenvío del agente elimine las solicitudes de contraseña para el resto del día. Es muy agradable.

Sin embargo, algunos sistemas están bloqueados, así que realmente tengo que usar el comando "su" para acceder a la cuenta compartida. Arg! ¡Volver a ingresar contraseñas todo el tiempo!

¿Hay suficiente información registrada con la autenticación de clave pública / privada SSH de modo que pueda tener una posibilidad razonable de solicitar un cambio de política para permitir inicios de sesión remotos en una cuenta compartida si se utilizan claves públicas / privadas?

Tenía un aspecto de administrador en / var / log / secure y solo dice que se aceptó una clave pública para una cuenta de usuario desde una dirección IP particular. No decía quién era la clave pública o quién era la clave privada que realizó la autenticación.

David I.
fuente

Respuestas:

13

Hay muchos niveles de registro disponibles a través del sshd_configarchivo. Vea la página del manual y busque LogLevel. El nivel predeterminado es INFOpero es trivialmente fácil subirlo VERBOSEo incluso uno de los DEBUG#niveles.

Además, debe explorar sudocomo una alternativa a su. Una discusión completa de los beneficios de sudosería una cuestión propia. Pero puedo decir que con sudousted puede personalizar la frecuencia con la que tiene que ingresar su contraseña, qué comandos se pueden ejecutar, etc., todo controlable a través del archivo de configuración de sudoers .

dwc
fuente
Votado por sugerir un reemplazo de sudo.
Matt Simmons
6

Otra forma sería moverse authorized_keysfuera del alcance del usuario (por ejemplo, a /etc/ssh/authorized_keys) para que solo los administradores de sistemas controlen qué claves públicas se pueden usar para iniciar sesión en cuentas determinadas.

Solíamos cambiar la AuthorizedKeysFiledirectiva sshd_configa algo como lo siguiente.

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

Luego, cree y complete el /etc/ssh/authorized_keysdirectorio con archivos para cada usuario que se supone que puede iniciar sesión, asegurándose de que el rootarchivo sea legible / escribible solo para root y otros archivos legibles por un usuario apropiado, como este:

-rw-------  1 root root    1,7K 2008-05-14 14:38 root
-rw-r-----  1 root john     224 2008-11-18 13:15 john

Cada archivo contiene un conjunto de claves públicas que podrán iniciar sesión en una cuenta determinada. Es bastante común que para cada cuenta de usuario también haya un grupo respectivo.

El uso de claves públicas / privadas es un método mucho mejor para controlar el acceso de usuarios remotos. No tiene que cambiar la contraseña todos los meses (tampoco tiene que configurarla), y no tiene que cambiarla solo porque un empleado dejó su empresa simplemente elimine su clave pública; y, por supuesto, con las opciones de SSH ( http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8#SSHRC) puede ir a qué y desde dónde puede tener acceso un usuario determinado.

ahi
fuente
1

La autenticación de clave pública / privada SSH es independiente de la autenticación del host. No tienes suerte aquí. Sin embargo, puede solicitar que los miembros de un grupo en particular puedan ejecutar ciertos comandos administrativos sudosin contraseña, como el siguiente ejemplo permite a los usuarios del secretariesgrupo administrar cuentas:


# file: /etc/sudoers
...
%secretaries    ALL= NOPASSWD: /usr/bin/adduser, /usr/bin/rmuser   
...
Nikolai N Fetissov
fuente
En segundo lugar, esto es mucho, mucho más fácil de auditar cuando usas SUDO. Puedes ver al usuario Joe escribiendo "sudo appname -options", que es mucho más simple que ver root tipeado "appname -options" y luego debes reconciliar quién todo estaba conectado como root en ese momento.
Brian
OK, eso ayuda. Sin embargo, algunas de nuestras tareas son iniciar y detener los procesos de daemon. ¿Sudo nos permitirá ejecutar los scripts de "inicio" y "detención" como nombre de usuario del grupo compartido? (que no es root) Queremos que los procesos sean propiedad del nombre de usuario de la cuenta compartida que configuramos.
David I.
Sí, la -uopción le permite hacerlo, consulte el manual sudo.ws/sudo/man/1.8.1/sudo.man.html
Nikolai N Fetissov