He configurado PKCS#11
una conexión ssh remota en mi servidor Ubuntu de modo que los usuarios puedan iniciar sesión utilizando un token de hardware, como se describeaquí. Sin embargo, en esta condición, el usuario puede iniciar sesión en el servidor, eliminar el token y entregárselo a otra persona para que inicie sesión. Quiero restringir al usuario de modo que cuando elimine el token, ya no pueda mantener la conexión a mi servidor (o después de un corto tiempo). Por ejemplo, quiero configurar una dependencia continua del token. ¿Es necesario desarrollar un cliente SSH específico? Actualmente usoMasilla-CACcomo el cliente.
Respuesta1
No, eso no es posible sin modificaciones del cliente: la autenticación de usuario en SSH se realiza solo una vez para toda la conexión, además de ser iniciada por el cliente en primer lugar.
SSHv2 es compatiblecambio de clave, que incluso puede ser iniciado por el servidor, pero solo crea una dependencia del par de claves "host" del servidor, no del usuario.
Aunque el mecanismo "gssapi-keyex" puede ser una excepción, ya que combina la autenticación de usuario Kerberos con el método de intercambio de claves y, por lo tanto, depende de que el usuario tenga tickets Kerberos no vencidos, pero si está usando PKCS#11, entonces no lo está. utilizando Kerberos.
(También podría pensar en un truco que implique cargar su token PKCS#11 en Pageant-CAC (agente clave SSH de PuTTY), y luego habilitar el "reenvío de agente" SSH para que el servidor pueda solicitar periódicamente firmas del agente reenviado... pero esto por supuesto tiene elmasivodesventaja de permitir que servidores maliciosos abusen del token PKCS#11 a través de la misma función de "reenvío de agentes").
Quizás tratarlo como un problema de política de la empresa e imponer consecuencias al compartir cuentas.