لقد عثرت على مقال ( http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/ ) يشرح كيفية تكوين OpenSSH لطلب Google Authenticator رمز عند تسجيل دخول ناجح.

هل من الممكن تكوين OpenSSH بحيث يحدث ما يلي:

  • إذا كان المستخدم لديه المفتاح الخاص الصحيح لتسجيل الدخول إلى الخادم ، فقم بتسجيل دخول المستخدم.
  • إذا لم يكن لدى المستخدم مفتاح خاص مسموح به لتسجيل الدخول إلى الخادم ، فاطلب من المستخدم إدخال كلمة مرور الحساب ورمز Google Authenticator.

سيكون هذا مناسبًا (لأنني على أجهزة الكمبيوتر الخاصة بي سأحتاج فقط إلى المفتاح الخاص) وآمنًا (حيث يمكنني ترك مصادقة كلمة المرور ممكّنة وآمنة).

هل هناك طريقة لتحقيق ما أريد؟

شكرا لك مقدما. :)

answer

من الممكن بالتأكيد تكوين مفتاح sshdلطلب إما زوج مفاتيح صالح أو استخدام HOTP (كلمة مرور جديدة لمرة واحدة (OTP) في كل طلب) مصادقة مستندة إلى OATH - أنا أفعل ذلك. أنا متأكد تمامًا من أن Google Authenticator هو مجرد تطبيق OATH آخر.

يمكن قراءة كتابتي الكاملة على http://www.teaparty.net/technotes/yubikey-oath.html ، ولكن النتيجة هي:

بافتراض sshdأنه تم إعدادك بالفعل للسماح بالمصادقة القائمة على المفتاح العام (معظمها) ، أضف هذين السطرين إلى sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication yes 

التثبيت pam_auth(هذه هي الطريقة الموجهة نحو CentOS ، لـ x86_64):

yum install pam_oath
ln -s /usr/lib64/security/pam_oath.so /lib64/security/

قم بإنشاء ملف المصادقة /etc/users.oathوالوضع 600والمالك root:rootوملئه بخطوط مثل:

#type   username        pin     start seed
HOTP    fred            -       123a567890123b567890123c567890123d567890

تحرير /etc/pam.d/sshdوإضافة الخط

auth required pam_oath.so usersfile=/etc/users.oath window=5 digits=8 

تخطي digits=8إذا كنت سعيدًا بـ HOTP OATH المكون من 6 أرقام. أعتقد أنه يمكن استخدام طريقة مماثلة لـ TOTP OATH (OTP جديد كل n ثانية) ، لكنني أستخدم رموز OATH للأجهزة بدلاً من البرامج ، وهم yubikeys ، الذين لا يفعلون سوى HOTP OATH.

التجعد الوحيد هو أنه عندما تدخل دون تقديم مفتاح صالح ، فإنها تطلب رمز OATH قبل كلمة المرور. لم أستطع أن أجعلها تعمل في الاتجاه المعاكس ، لكنني قررت أنني لا أهتم كثيرًا ؛ توضح المطالبات تمامًا الرمز المميز المطلوب.

تحتاج إلى إلحاق:

AuthenticationMethods publickey keyboard-interactive

بدون فاصلة بين publickeyو keyboard-interactiveل /etc/ssh/sshd_config. لا يلزم تغيير جميع الإعدادات الأخرى (طالما أن التكوين يساوي البرنامج التعليمي howtogeek المحدد).