Los usuarios que inician sesión en mi servidor Linux deben poder enviar ssh a una máquina remota específica con una cuenta predeterminada. La autenticación en la máquina remota utiliza la clave pública, por lo que en el servidor está disponible la clave privada correspondiente.
No quiero que los usuarios del servidor puedan leer la clave privada. Básicamente, el hecho de que tengan acceso al servidor les permite el derecho ssh, y eliminarlos del servidor también debería impedir la conexión a la máquina remota.
¿Cómo puedo permitir que los usuarios abran una conexión ssh sin darles acceso de lectura a la clave privada?
Mis pensamientos hasta ahora: obviamente, el ejecutable ssh debe poder leer la clave privada, por lo que debe ejecutarse bajo otro usuario en el servidor que tenga esos derechos. Una vez establecida la conexión ssh, puedo "reenviarla" al usuario para que pueda ingresar comandos e interactuar con la máquina remota.
- ¿Es este un buen enfoque?
- ¿Cómo debo implementar el reenvío?
- ¿Cómo puede el usuario iniciar la conexión (es decir, la ejecución del ssh por el usuario que tiene derechos de lectura en la clave)?
- ¿Hay una escapatoria de seguridad? - si los usuarios pueden ejecutar un ssh como otro usuario, ¿pueden hacer todo lo que otro usuario podría hacer (incluida la lectura de la clave privada)?
~/.ssh/authorized_keys
archivo?