Hello everyone,
I have mistake that i delete Google Authentication Discourse on Mobile so Now i can’t login to Discourse.
My question is … Can we disable Two Factor Authentication by command line SSH ?
Thank you!
What happened to your backup codes?
Yes, you can do this by updating the enforce_second_factor site setting to “no”. Enter the rails console and run:
SiteSetting.enforce_second_factor = "no"
The available options for that setting are “no”, “staff”, and “all”.
Soy nuevo y tengo el mismo problema. Eliminé la autenticación en dos pasos de mi teléfono sin guardar el código de respaldo.
Actualmente no puedo iniciar sesión en el panel de administración. Por ahora, no tengo otro personal para desactivarlo desde el panel.
¿Alguien puede explicar más sobre cómo usar este comando?:
Gracias.
Necesitas acceso a terminal SSH al servidor donde se ejecuta Discourse para continuar. ¿Lo tienes?
Sí, lo tengo, pero no sé cómo usar ese comando. ¿Debo ir a la consola de Rails? De hecho, no sé cómo funciona Rails.
Para acceder a la consola de Rails, inicia sesión en tu servidor mediante SSH. Para ello, abre una terminal en tu computadora y ejecuta:
ssh root@<tu_ip_de_foro>
Reemplaza <tu_ip_de_foro> con la dirección IP de tu sitio Discourse.
Si el comando se ejecuta correctamente, verás un indicador similar a este. Tu dirección IP o el nombre de tu droplet se mostrarán en lugar de la palabra testeleven:
root@testeleven:~#
Escribe cd /var/discourse y presiona la tecla Enter.
Ahora escribe ./launcher enter app y presiona la tecla Enter.
Deberías ver un indicador que termina algo así: /var/www/discourse#
En ese indicador, escribe rails c y presiona la tecla Enter. Ahora deberías ver un indicador similar a este: pry(main)>. Esta es la consola de Rails.
Para desactivar la autenticación de segundo factor obligatoria, escribe SiteSetting.enforce_second_factor="no" y presiona la tecla Enter.
Para salir de la sesión SSH, necesitarás escribir la palabra exit en la terminal tres veces. La primera vez es para salir de la consola de Rails, la segunda vez para salir del contenedor Docker y la tercera vez para salir de la sesión SSH.
Gracias, las instrucciones son muy claras y detalladas. Hice lo siguiente, pero aún se requiere autenticación de dos factores al iniciar sesión. No sé qué está mal.
root@hoi-dap:/var/discourse# ./launcher enter app
root@hoi-dap-app:/var/www/discourse# rails c
[1] pry(main)> SiteSetting.enforce_second_factor='no'
=> "no"
[2] pry(main)> exit
root@hoi-dap-app:/var/www/discourse# exit
logout
Lo sentimos, establecer SiteSetting.enforce_second_factor = "no" no solucionará tu problema. Necesitas eliminar el registro de autenticación en dos pasos para tu usuario.
Para hacerlo, ingresa a la consola de Rails y luego debes encontrar tu ID de usuario. Para ello, ejecuta:
id = User.find_by(username: '<tu_usuario>').id
Reemplaza <tu_usuario> con tu nombre de usuario de Discourse. Asegúrate de mantener las comillas. Cuando ejecutes el comando, deberías ver un número devuelto. Ese número es tu ID de usuario. Se ha asignado a la variable id.
Luego, necesitas encontrar el registro UserSecondFactor asociado a tu usuario. Este comando utiliza la variable id que estableciste con el primer comando:
second_factor = UserSecondFactor.find_by(user_id: id)
Cuando ejecutes ese comando, deberías ver una salida en la consola que muestra tu registro de autenticación en dos pasos.
Ahora, destruye el registro:
second_factor.destroy
Puedes salir de la consola después de ejecutar ese comando. Deberías poder iniciar sesión en tu sitio después de hacerlo.
Háznos saber si tienes algún problema con esto.
Muchas gracias, funciona genial.
Sin embargo, no utilicé el comando second_factor.destroy. En su lugar, tomé el campo de datos para ingresar manualmente la aplicación de autenticación y recrear el código de autenticación de dos factores.
Sí, funcionó perfectamente. Para mayor seguridad, recrearé el nuevo validador.
Gracias.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.


