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!
O que aconteceu com seus códigos de backup?
Sim, você pode fazer isso atualizando a configuração do site enforce_second_factor para “no”. Acesse o console do Rails e execute:
SiteSetting.enforce_second_factor = "no"
As opções disponíveis para essa configuração são “no”, “staff” e “all”.
Sou iniciante e tenho o mesmo problema. Excluí a autenticação de dois fatores no meu telefone sem salvar o código de backup.
Atualmente, não consigo fazer login no painel administrativo. No momento, não tenho nenhum outro membro da equipe para desativá-lo pelo painel.
Alguém pode explicar melhor como usar este comando? :
Obrigado
Você precisa de acesso ao terminal SSH no servidor onde o Discourse está sendo executado para prosseguir. Você tem isso?
Sim, eu tenho, mas não sei como fazer com aquele comando. Preciso ir ao console do Rails? Na verdade, eu não sei como o Rails funciona.
Para acessar o console do Rails, faça SSH no seu servidor. Para isso, abra um terminal no seu computador e execute:
ssh root@<seu_ip_do_forum>
Substitua <seu_ip_do_forum> pelo endereço IP do seu site Discourse.
Se o comando for bem-sucedido, você verá um prompt semelhante a este. Seu endereço IP ou nome do droplet será exibido no lugar da palavra testeleven:
root@testeleven:~#
Digite cd /var/discourse e pressione Enter.
Agora, digite ./launcher enter app e pressione Enter.
Você deve ver um prompt que termina com algo semelhante a isto: /var/www/discourse#
Nesse prompt, digite rails c e pressione Enter. Agora você deve ver um prompt semelhante a este: pry(main)>. Este é o console do Rails.
Para desativar a autenticação de segundo fator obrigatória, digite SiteSetting.enforce_second_factor="no" e pressione Enter.
Para sair da sessão SSH, você precisará digitar a palavra exit no terminal três vezes. A primeira vez é para sair do console do Rails, a segunda vez é para sair do contêiner Docker e a terceira vez é para sair da sessão SSH.
Obrigado, as instruções estão muito claras e detalhadas. Fiz o seguinte, mas ainda preciso da autenticação de dois fatores ao fazer login. Não sei onde está o erro?
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
Desculpe, definir SiteSetting.enforce_second_factor = "no" não resolverá seu problema. Você precisa remover o registro de autenticação de dois fatores do seu usuário.
Para fazer isso, acesse o console do Rails e, em seguida, você precisará encontrar o ID do seu usuário. Para isso, execute:
id = User.find_by(username: '<seu_usuario>').id
Substitua <seu_usuario> pelo seu nome de usuário no Discourse. Certifique-se de manter as aspas. Ao executar o comando, você deverá ver um número retornado. Esse número é o ID do seu usuário. Ele foi atribuído à variável id.
Em seguida, você precisa encontrar o registro UserSecondFactor associado ao seu usuário. Este comando usa a variável id definida no primeiro comando:
second_factor = UserSecondFactor.find_by(user_id: id)
Ao executar esse comando, você deverá ver alguma saída no console que mostra o registro de autenticação de dois fatores.
Agora, destrua o registro:
second_factor.destroy
Você pode sair do console após executar esse comando. Você deverá conseguir fazer login no seu site após executá-lo.
Avise-nos se tiver algum problema com isso.
Muito obrigado, funciona muito bem.
No entanto, eu não usei o comando second_factor.destroy. Em vez disso, peguei o campo de dados para inserir manualmente o Authenticator e recriar o código de autenticação de dois fatores.
Sim, funcionou perfeitamente. Para maior segurança, vou recriar o novo validador.
Obrigado.


