Kombinasi kunci auth SSH, dan otentikasi dua faktor

7

Saya bertanya-tanya apakah mungkin untuk mencapai yang berikut, semuanya pada saat yang sama:

  • Nonaktifkan login root
  • Aktifkan login SSH untuk pengguna pribadi, hanya melalui kunci SSH
  • Aktifkan login SSH untuk pengguna yang tidak berhak, dengan otentikasi kata sandi dan otentikasi dua faktor saja

Menggunakan Matchblok di sshd_configsaya bisa mengatur ini sehingga secara umum PasswordAuthenticationdinonaktifkan kecuali untuk pengguna yang tidak memiliki hak pribadi (sebut saja peon). Kunci SSH diperlukan untuk masuk ke pengguna pribadi (yang memiliki kemampuan sudo).

Namun, ketika saya mencoba untuk mengaktifkan otentikasi dua faktor ( pam_google_authenticator) saya harus menghidupkan ChallengeResponseAuthenticationyang sepertinya tidak berfungsi di Matchblok, dan karenanya menghidupkan kembali otentikasi kata sandi untuk semua orang.

Apakah ada cara untuk menyelesaikan ini? Saya tidak terlalu hebat dengan hal-hal semacam ini, jadi penjelasan rinci akan sangat dihargai.

Terima kasih!

Brandon
sumber

Jawaban:

4

Versi terbaru opensshmenyertakan AuthenticationMethodsopsi:

Debian backport openssh-6.2 beberapa waktu lalu , jadi saya berharap ini tersedia di Raspbian juga.

Menentukan metode otentikasi yang harus berhasil diselesaikan agar pengguna dapat diberikan akses.

Anda dapat mengaktifkan blok utama Anda sshd_configdengan ChallengeResponseAuthentication:

ChallengeResponseAuthentication yes
PasswordAuthentication no
PermitRootLogin no

dan kemudian gunakan AuthenticationMethodsdi Matchblok Anda (gunakan Grouppencocokan alih-alih Userpencocokan untuk memudahkan skalabitas):

Match Group personal
  AuthenticationMethods publickey

Match Group peon
  PasswordAuthentication yes
  AuthenticationMethods publickey,keyboard-interactive

Selain itu, Anda dapat menggunakan pam_succeed_if(8)untuk memicu otentikasi dua faktor hanya jika grup yang cocok memerlukannya:

 auth required pam_succeed_if.so quiet user ingroup peon
dawud
sumber
Meskipun saya tahu penggunaan Userbukan merupakan fokus jawaban Anda, saya tetap merekomendasikan untuk mengubah contoh untuk menggunakan Groupalih-alih User. Menyematkan nama pengguna dalam file konfigurasi cenderung tidak skala dengan baik.
Andrew B
Ini hanya untuk pi Raspberry saat ini :)
Brandon
2
Bad configuration option: AuthenticationMethods- Directive 'AuthenticationMethods' is not allowed within a Match block Apakah ini berarti saya perlu memperbarui ssh?
Brandon