Befehlszeile zum Deaktivieren der Zwei-Faktor-Authentifizierung

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!

Was ist mit deinen Sicherungscode passiert?

Ich habe meine Google-Authentifizierung gelöscht

Und ich habe keinen Sicherungscode gespeichert.

Ja, das können Sie tun, indem Sie die Site-Einstellung enforce_second_factor auf „no

Ich möchte die Zwei-Faktor-Authentifizierung für mein gesamtes Discourse-Konto deaktivieren.

Ich bin neu und habe das gleiche Problem. Ich habe die Zwei-Faktor-Authentifizierung auf meinem Telefon gelöscht, ohne den Backup-Code zu speichern.

Derzeit kann ich mich nicht beim Admin-Bereich anmelden. Ich habe aktuell auch kein anderes Personal, das dies über das Dashboard deaktivieren könnte.

Kann jemand genauer erklären, wie man diesen Befehl verwendet?:

[quote=“simon, post:4, topic:121480”]
Ja, das kannst du tun, indem du die Site-Einstellung enforce_second_factor auf „no

Um fortzufahren, benötigen Sie SSH-Terminalzugriff auf den Server, auf dem Discourse läuft. Haben Sie diesen?

Ja, ich habe ihn, aber ich weiß nicht, wie ich mit diesem Befehl vorgehe. Muss ich zur Rails-Konsole? Tatsächlich weiß ich nicht, wie Rails funktioniert.

Um auf die Rails-Konsole zuzugreifen, verbinden Sie sich per SSH mit Ihrem Server. Öffnen Sie dazu ein Terminal auf Ihrem Computer und führen Sie folgenden Befehl aus:

ssh root@<Ihre_Forum_IP-Adresse>

Ersetzen Sie <Ihre_Forum_IP-Adresse> durch die IP-Adresse Ihrer Discourse-Site.

Wenn der Befehl erfolgreich ist, sehen Sie eine Eingabeaufforderung, die ungefähr so aussieht. Anstelle des Wortes testeleven wird Ihre IP-Adresse oder der Name Ihres Droplets angezeigt:

root@testeleven:~#

Geben Sie cd /var/discourse ein und drücken Sie die Eingabetaste.

Geben Sie nun ./launcher enter app ein und drücken Sie erneut die Eingabetaste.

Sie sollten eine Eingabeaufforderung sehen, die mit etwas Ähnlichem endet wie: /var/www/discourse#

Geben Sie an dieser Eingabeaufforderung rails c ein und drücken Sie die Eingabetaste. Sie sollten nun eine Eingabeaufforderung sehen, die ähnlich aussieht wie: pry(main)> . Dies ist die Rails-Konsole.

Um die erzwungene Zwei-Faktor-Authentifizierung zu deaktivieren, geben Sie SiteSetting.enforce_second_factor="no" ein und drücken Sie die Eingabetaste.

Um die SSH-Sitzung zu beenden, müssen Sie dreimal das Wort exit im Terminal eingeben. Das erste Mal beendet es die Rails-Konsole, das zweite Mal den Docker-Container und das dritte Mal die SSH-Sitzung.

Danke, die Anweisungen sind sehr klar und detailliert. Ich habe Folgendes durchgeführt, aber beim Einloggen wird immer noch die Zwei-Faktor-Authentifizierung verlangt. Ich weiß nicht, was falsch läuft?

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

Entschuldigung, das Setzen von SiteSetting.enforce_second_factor = "no" wird Ihr Problem nicht lösen. Sie müssen den Second-Factor-Eintrag für Ihren Benutzer entfernen.

Dazu geben Sie die Rails-Konsole ein und finden Ihre Benutzer-ID. Führen Sie dafür folgenden Befehl aus:

id  = User.find_by(username: '<your_username>').id

Ersetzen Sie <your_username> durch Ihren Discourse-Benutzernamen. Achten Sie darauf, die Anführungszeichen beizubehalten. Wenn Sie den Befehl ausführen, wird eine Zahl zurückgegeben. Diese Zahl ist Ihre Benutzer-ID. Sie wurde der Variable id zugewiesen.

Anschließend müssen Sie den UserSecondFactor-Eintrag finden, der mit Ihrem Benutzer verknüpft ist. Dieser Befehl verwendet die Variable id, die Sie mit dem ersten Befehl festgelegt haben:

second_factor = UserSecondFactor.find_by(user_id: id)

Wenn Sie diesen Befehl ausführen, sehen Sie in der Konsole eine Ausgabe, die Ihren Second-Factor-Eintrag anzeigt.

Löschen Sie nun den Eintrag:

second_factor.destroy

Nachdem Sie diesen Befehl ausgeführt haben, können Sie die Konsole verlassen. Sie sollten sich danach wieder auf Ihrer Website anmelden können.

Lassen Sie uns wissen, falls Sie dabei auf Probleme stoßen.

Vielen Dank, das funktioniert hervorragend.
Ich habe jedoch nicht den Befehl second_factor.destroy verwendet. Stattdessen habe ich das Datenfeld genutzt, um den Authenticator manuell einzurichten und den Zwei-Faktor-Authentifizierungscode neu zu generieren.
Ja, es hat perfekt funktioniert. Zur zusätzlichen Sicherheit werde ich den neuen Validierer neu einrichten.
Vielen Dank.