¿Cómo configurar la clave pública SSH por usuario?

0

Tengo un servidor OpenSSH en ejecución y diferentes usuarios pueden iniciar sesión con diferentes privilegios.

Sé que puede habilitar la autenticación de clave pública y colocar todas las claves públicas permitidas en el archivo authorized_keys . Pero eso solo restringe los hosts que pueden iniciar sesión.

Me gustaría configurar la autenticación de clave pública para que el registro como user1 requiera una clave diferente en comparación con el inicio de sesión como user2 .

¿Hay alguna manera de lograr esto utilizando OpenSSH?

    
pregunta Pandrei 17.06.2016 - 11:57
fuente

1 respuesta

4

En realidad, SSH requiere que configures diferentes claves para diferentes usuarios.

Cada cuenta de usuario en la máquina de destino tiene su propio ~/.ssh/authorized_keys (no necesariamente tiene que tener, puede que no exista).

Supongamos que tienes server y client .

server ha configurado los usuarios de la siguiente manera:

/home/srv_user01
                /.ssh/authorized_keys
                        --> contains public key of cli_user01
                                 and public key of cli_user03
/home/srv_user02
                /.ssh/authorized_keys
                        --> empty or non-existing
/home/srv_user03
                /.ssh/authorized_keys
                        --> contains public key of cli_user03

client tiene tres cuentas cli_user01 , cli_user02 y cli_user03 .

En client machine:

  • cli_user01 puede ejecutar ssh srv_user01@server e iniciar sesión en server como srv_user01
  • cli_user02 no puede conectarse a server en absoluto
  • cli_user03 puede ejecutar:
    • ssh srv_user01@server e inicie sesión en server como srv_user01 , o
    • ssh srv_user03@server e inicie sesión en server como srv_user03
  • ningún usuario puede conectarse e iniciar sesión como srv_user02 en server

En el ejemplo anterior, utilicé nombres diferentes en el lado del cliente y del servidor, pero si el nombre de la cuenta era el mismo en client y server , el usuario no tiene que especificar el nombre de la cuenta en el comando ssh , por lo tanto Haciendo la impresión de "logging to server". Entonces, si inicio sesión como user en el cliente y ejecuto ssh server ー es lo mismo que ssh user@server .

El proceso server one sshd escucha en el puerto 22 (predeterminado) y recibe conexiones de cada uno de los usuarios conectados.

    
respondido por el techraf 17.06.2016 - 12:51
fuente

Lea otras preguntas en las etiquetas