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”.
Je suis débutant et je rencontre le même problème. J’ai supprimé l’authentification à deux facteurs sur mon téléphone sans sauvegarder le code de récupération.
Actuellement, je ne peux pas me connecter à l’administration. Je n’ai aucun autre membre du personnel pour la désactiver depuis le tableau de bord.
Quelqu’un peut-il m’expliquer davantage comment utiliser cette commande ? :
Merci
Vous avez besoin d’un accès terminal SSH au serveur où Discourse est en cours d’exécution pour continuer. Avez-vous cet accès ?
Oui, je l’ai, mais je ne sais pas comment faire avec cette commande. Dois-je accéder à la console Rails ? En fait, je ne sais pas comment fonctionne Rails.
Pour accéder à la console Rails, connectez-vous en SSH à votre serveur. Pour ce faire, ouvrez un terminal sur votre ordinateur et exécutez :
ssh root@<votre_adresse_ip_du_forum>
Remplacez <votre_adresse_ip_du_forum> par l’adresse IP de votre site Discourse.
Si la commande réussit, vous verrez une invite qui ressemble à ceci. Votre adresse IP ou le nom de votre droplet s’affichera à la place du mot testeleven :
root@testeleven:~#
Tapez cd /var/discourse puis appuyez sur la touche Entrée.
Tapez ensuite ./launcher enter app et appuyez sur Entrée.
Vous devriez voir une invite se terminant par quelque chose comme ceci : /var/www/discourse#
À cette invite, tapez rails c et appuyez sur Entrée. Vous devriez maintenant voir une invite ressemblant à ceci : pry(main)>. C’est la console Rails.
Pour désactiver l’authentification à deux facteurs obligatoire, tapez SiteSetting.enforce_second_factor="no" et appuyez sur Entrée.
Pour quitter la session SSH, vous devrez saisir le mot exit dans le terminal trois fois. La première fois pour quitter la console Rails, la deuxième fois pour quitter le conteneur Docker, et la troisième fois pour quitter la session SSH.
Merci, les instructions sont très claires et détaillées. J’ai fait ce qui suit, mais l’authentification à deux facteurs est toujours requise lors de la connexion. Je ne sais pas où est l’erreur ?
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
Désolé, définir SiteSetting.enforce_second_factor = "no" ne résoudra pas votre problème. Vous devez supprimer l’enregistrement de l’authentification à deux facteurs pour votre utilisateur.
Pour ce faire, ouvrez la console Rails, puis vous devez trouver votre identifiant d’utilisateur. Pour cela, exécutez :
id = User.find_by(username: '<votre_nom_utilisateur>').id
Remplacez <votre_nom_utilisateur> par votre nom d’utilisateur Discourse. Assurez-vous de conserver les guillemets. Lorsque vous exécutez la commande, un nombre devrait être renvoyé. Ce nombre est votre identifiant d’utilisateur. Il a été attribué à la variable id.
Ensuite, vous devez trouver l’enregistrement UserSecondFactor associé à votre utilisateur. Cette commande utilise la variable id que vous avez définie avec la première commande :
second_factor = UserSecondFactor.find_by(user_id: id)
Lorsque vous exécutez cette commande, vous devriez voir une sortie dans la console affichant votre enregistrement d’authentification à deux facteurs.
Maintenant, supprimez l’enregistrement :
second_factor.destroy
Vous pouvez quitter la console après avoir exécuté cette commande. Vous devriez pouvoir vous connecter à votre site après l’avoir fait.
Faites-nous savoir si vous rencontrez des problèmes avec cela.
Merci beaucoup, cela fonctionne très bien.
Cependant, je n’ai pas utilisé la commande second_factor.destroy. À la place, j’ai utilisé le champ de données pour saisir manuellement l’Authentificateur afin de recréer le code d’authentification à deux facteurs.
Oui, cela a fonctionné parfaitement. Pour plus de sécurité, je recréerai le nouveau validateur.
Merci.


