¿Puede Bash decirme qué clave pública SSH se usó para autenticar?

14

Digamos que quiero rastrear a mis rootusuarios. Cada uno de ellos tiene una clave privada única y sus claves públicas se han almacenado /root/.ssh/authorized_keys.

Dado que cada usuario inicia sesión con su clave única, ¿cómo puedo saber, dentro de una sesión de BASH, qué clave se usó para autenticar? Intenté mirar las variables de entorno cuando inicio sesión, pero no puedo ver nada que relacione mi sesión con mi clave pública.

PÁGINAS.
fuente
Ligeramente relacionado: configurar LogLevel VERBOSE en su (openssh) sshd_config registrará la huella digital de la clave utilizada para iniciar sesión.
andol

Respuestas:

21

Puede agregar el nombre de usuario a la clave pública en ~/.ssh/authorized_keysel servidor y exportarlo como un valor de entorno:

environment="REALUSER=realusername" ssh-dsa AAA...

Eso establecerá la variable de entorno REALUSER que luego estará disponible para usar en bash. Esto solo funcionará si PermitUserEnvironmentse establece en verdadero ensshd_config

Jenny D
fuente
Whoah .. enserio? ¡Frio! ¿Quieres decir en ~/.ssh/authorized_keys? Nunca supe de esto.
PP.
55
Sí, eso es todo. Puede hacer muchas cosas interesantes allí; man sshle diremos más debajo del título AUTHORIZED_KEYS FILE FORMAT.
Jenny D
44
Puede depender de la versión, pero tuve que usar man sshdpara encontrar la AUTHORIZED_KEYS FILE FORMATsección.
Matthew Crumley
2
Tenga en cuenta que habilitar PermitUserEnvironment tiene algunas implicaciones de seguridad. Read man sshd
Florin Andrei