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!
ماذا حدث لرموز النسخ الاحتياطي الخاصة بك؟
نعم، يمكنك القيام بذلك عن طريق تحديث إعداد الموقع enforce_second_factor إلى “no”. أدخل وحدة تحكم Rails وشغّل الأمر التالي:
SiteSetting.enforce_second_factor = "no"
الخيارات المتاحة لهذا الإعداد هي “no”، و"staff"، و"all".
أنا جديد وأواجه نفس المشكلة. لقد حذفت المصادقة الثنائية من هاتفي دون حفظ رمز الاستعادة.
حاليًا، لا يمكنني تسجيل الدخول إلى لوحة الإدارة. ولا يوجد لدي موظفون آخرون لتعطيل الميزة من لوحة التحكم.
هل يمكن لأي شخص شرح كيفية استخدام هذا الأمر بشكل أكثر تفصيلاً؟:
شكرًا لك
تحتاج إلى الوصول إلى طرفية SSH للخادم الذي يعمل عليه Discourse للمتابعة. هل تملك ذلك؟
نعم، أملكه، لكنني لا أعرف كيفية استخدام ذلك الأمر. هل يجب أن أذهب إلى وحدة تحكم Rails؟ في الواقع، لا أعرف كيف تعمل Rails.
للوصول إلى وحدة تحكم Rails، قم بتسجيل الدخول إلى خادمك عبر SSH. للقيام بذلك، افتح طرفية (Terminal) على جهازك وقم بتشغيل الأمر التالي:
ssh root@<your_forum_ip_address>
استبدل <your_forum_ip_address> بعنوان IP لموقع Discourse الخاص بك.
إذا نجح الأمر، فسترى موجهًا يشبه هذا. سيتم عرض عنوان IP الخاص بك أو اسم droplet بدلاً من كلمة testeleven:
root@testeleven:~#
اكتب cd /var/discourse ثم اضغط على مفتاح الإدخال (Enter).
الآن اكتب ./launcher enter app ثم اضغط على مفتاح الإدخال.
يجب أن ترى موجهًا ينتهي بشيء مشابه لهذا: /var/www/discourse#
عند هذا الموجه، اكتب rails c ثم اضغط على مفتاح الإدخال. يجب أن ترى الآن موجهًا يشبه هذا: pry(main)>. هذه هي وحدة تحكم Rails.
لتعطيل مصادقة العامل الثاني الإجبارية، اكتب SiteSetting.enforce_second_factor="no" ثم اضغط على مفتاح الإدخال.
لإنهاء جلسة SSH، ستحتاج إلى إدخال كلمة exit في الطرفية ثلاث مرات. المرة الأولى للخروج من وحدة تحكم Rails، والمرة الثانية للخروج من حاوية Docker، والمرة الثالثة للخروج من جلسة SSH.
شكرًا لك، التعليمات واضحة ومفصلة جدًا. قمت بالخطوات التالية، لكن لا يزال مطلوبًا مني المصادقة ذات العاملين عند تسجيل الدخول. لا أعرف أين الخطأ؟
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
عذراً، ضبط SiteSetting.enforce_second_factor = "no" لن يحل مشكلتك. يجب عليك حذف سجل العامل الثاني الخاص بك.
لتنفيذ ذلك، ادخل إلى وحدة تحكم Rails، ثم تحتاج إلى العثور على معرف المستخدم الخاص بك. للقيام بذلك، شغّل الأمر التالي:
id = User.find_by(username: '<your_username>').id
استبدل <your_username> باسم المستخدم الخاص بك في Discourse. تأكد من الإبقاء على علامات الاقتباس. عند تشغيل الأمر، يجب أن يظهر رقم. هذا الرقم هو معرف المستخدم الخاص بك، وقد تم تعيينه للمتغير id.
بعد ذلك، تحتاج إلى العثور على سجل UserSecondFactor المرتبط بالمستخدم الخاص بك. يستخدم هذا الأمر المتغير id الذي قمت بتعيينه بالأمر الأول:
second_factor = UserSecondFactor.find_by(user_id: id)
عند تشغيل هذا الأمر، يجب أن تظهر بعض المخرجات في وحدة التحكم تعرض سجل العامل الثاني الخاص بك.
الآن قم بتدمير السجل:
second_factor.destroy
يمكنك الخروج من وحدة التحكم بعد تشغيل هذا الأمر. يجب أن تتمكن من تسجيل الدخول إلى موقعك بعد تشغيله.
أخبرنا إذا واجهت أي مشاكل مع هذا.
شكرًا جزيلاً، لقد عمل بشكل رائع.
ومع ذلك، لم أستخدم الأمر second_factor.destroy. بدلاً من ذلك، استخدمت حقل البيانات لإدخال المصادق يدويًا لإعادة إنشاء رمز المصادقة الثنائية.
نعم، لقد عمل بشكل مثالي. ولأغراض الأمان الإضافي، سأقوم بإعادة إنشاء المصادق الجديد.
شكرًا لك.


