Aquí está el problema: he creado algo con Python que funciona con prácticamente cualquier sistema operativo, excepto Windows, y me han dicho que las personas que van a evaluarlo/usarlo/probarlo solo tienen Windows disponible. Todos los emuladores de consola disponibles fallaron y no tengo la opción de reescribir el código o instalar una máquina virtual en esas máquinas.
El plazo es en 8 horas y esto es lo que tengo en mente:
Tome mi servidor, cree un usuario sin contraseña (con, por ejemplo, el nombre de la aplicación) que solo pueda iniciar ese archivo o un alias (que inicie el archivo) e inicie el servidor ssh.
Luego, todo lo que tienen que hacer es ingresar a la máquina mediante ssh y aparecerá el programa. Es una consola de sólo texto, por lo que no puede haber problemas con eso.
La cuestión es que no sé cómo hacer que un usuario de Linux sea TAN limitado. ¿Cómo puedo hacer eso? El servidor es sólo una máquina de prueba, no contiene datos importantes y normalmente está apagado o funciona sin conexión, por lo que la seguridad no es un gran problema aquí. Sólo quiero que esto funcione. Además, la solución no será permanente, solo necesito que funcione mañana durante aproximadamente 7 horas y luego podré jugar libremente con ella y hacer que funcione correctamente.
Editar: Por mucho que aprecio las respuestas largas y llenas de información, debo decir que son las 4:30 a. m., he estado despierto durante casi dos días y estoy a punto de desmayarme frente al teclado. Así que, por favor, no agregues nada que no sea esencial, no podría procesarlo.
Respuesta1
Puede permitir inicios de sesión sin contraseña mediante la ejecución de claves de autorización SSH ssh-keygen
, que generaron una clave pública y privada. El usuario necesita la clave privada para iniciar sesión y el servidor necesita la clave pública. ~/.ssh/authorized_keys
Puede obtener más información en
Cómo configurar ssh para que no te pidan una contraseña
En cuanto a la restricción, puede crear un entorno chroot para este usuario, que es más seguro pero requiere mucho más trabajo, o puede imponer algunas restricciones a las claves autorizadas:
command="/your/script/path/filename",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pry YOUR-SSH-KEY
Puedes obtener más información enGestión de SSH para scripts y trabajos cron
Respuesta2
No pude crear un usuario sin contraseña, pero creé uno con nombre de usuario y contraseña y en el archivo /etc/ssh/sshd_config agregué Match User testuser
y ForceCommand python /path/file.py
de esa manera cualquiera puede iniciar sesión (la información de inicio de sesión está en el sitio web de ese servidor). el programa y luego cerrar sesión automáticamente cuando se cierre el programa.