Si un usuario tiene loginShell=/sbin/nologintodavía es posible
ssh user@machine [command]
suponiendo que el usuario tiene claves ssh adecuadas en su directorio de inicio que se pueden usar para autenticar?
Mi objetivo es mantener al usuario como un nologin, pero aún capaz de ejecutar comandos en algunas otras máquinas de la red (similar a su uso a través de 'sudo -u'), y me pregunto si este es un curso razonable.
ssh
login
account-restrictions
Centimane
fuente
fuente

commandse ejecuta en lugar del shell de inicio de sesión./sbin/nologincomo un shell. Si su preocupación es la seguridad de la cuenta, entonces deshabilitar la autenticación de contraseña y usar las claves ssh es suficiente./sbin/nologinentonces el usuario no podrá iniciar sesión o ejecutar comandos en la máquina. cronjobs se puede ejecutar como usuario ysftpse puede configurar para abrir sesiones, pero no se abrirá un shell a través de sshRespuestas:
Configuración
/sbin/nologincomo shell del usuario (o/bin/false, o/bin/true, lo que es casi equivalente ) prohíbe al usuario de inicio de sesión en ejecutar cualquier comando que sea. SSH siempre invoca el shell de inicio de sesión del usuario para ejecutar comandos, por lo que debe establecer el shell de inicio de sesión en uno que pueda ejecutar algunos comandos.Existen varios shells restringidos que permiten a los usuarios ejecutar solo unos pocos comandos. Por ejemplo rssh y scponly son dos conchas tales que permiten al usuario ejecutar unos comandos predefinidos (tales como
scp,sftp-server,rsync, ...). Consulte también Restringir el acceso de usuarios en Linux y ¿Necesita un shell para SCP?fuente
Parece que la respuesta es no.
con las teclas ssh en su lugar solo se obtiene:
en lugar de ejecutar el comando, parece que tendré que darle acceso a bash.
fuente
No sé si eso es posible (aunque debería ser fácil de probar), pero hay una característica que probablemente responde a su pregunta de cierta manera y, en cualquier caso, resuelve su problema.
Puede agregar un comando a la línea clave en
authorized_keys. En ese caso, este comando se ejecuta, nada más. Supongo que esto funciona/sbin/nologinya que el shell debe ignorarse de todos modos.Pero necesitaría una clave diferente para cada comando que permita.
fuente
authorized_keyses ejecutado por el shell de inicio de sesión, por lo que no, esto no funciona (no sin una configuración adicional no trivial). (¿Cómo se downvoting una respuesta incorrecta “estúpida” Por favor? Respetar a los demás .)