Paksa otentikasi kunci publik SSH untuk pengguna tertentu


10

Apakah mungkin untuk memaksa pengguna tertentu untuk masuk dengan kunci publik, sementara mengizinkan pengguna lain untuk masuk dengan kata sandi? Karena otentikasi kunci publik (dengan frasa sandi) lebih kuat daripada otentikasi hanya kata sandi, kami ingin meminta sudoer untuk masuk dengan kunci publik. Namun, kurang nyaman untuk memaksa pengguna normal melakukannya. Di sshd_config, saya tidak melihat konfigurasi terkait kebijakan apa pun.

Jawaban:


11

Anda punya beberapa pilihan. Dalam jawaban ini saya akan menganggap Anda memiliki sudoersgrup yang ditentukan.

Lihatlah sshd_confighalaman manual, dan cari Matcharahan. Ini memungkinkan Anda menentukan blok konfigurasi yang hanya berlaku untuk sebagian dari koneksi ssh Anda. Anda dapat melakukan sesuatu seperti ini:

Match Group sudoers
PasswordAuthentication no
ChallengeResponseAuthentication no

Secara teori Anda dapat mencapai sesuatu yang mirip dengan konfigurasi PAM yang hanya akan gagal upaya otentikasi oleh orang-orang dalam sudoersgrup. Ini mungkin melibatkan modul pam_succeed_if ... Anda bisa menambahkan sesuatu seperti ini ke authkonfigurasi Anda untuk sshd:

auth        requisite     pam_succeed_if.so user notingroup sudoers quiet

Ini berarti bahwa hanya orang yang tidak ada dalam sudoersgrup yang dapat melakukan otentikasi melalui PAM. Perhatikan bahwa ini belum diuji. Anda juga bisa menggunakan modul pam_listfile untuk melakukan hal serupa.


1
Terima kasih! Saya juga harus mencatat bahwa arahan Match diperkenalkan di OpenSSH 5.0. Untuk distribusi konservatif seperti CentOS, mungkin tidak tersedia secara asli.
Crend King

Ini memecah OpenSSH 7.7p1 - Saya harus menghapus arahan ChallengeResponseAuthentication agar dapat me-restart.
rbsec

2

Kemungkinan jawaban lain, sebagai @ larsks, jawaban tidak berfungsi untuk versi saya karena versi ssh_dsaya tampaknya menggunakan dokumentasi yang ditemukan di sini yang menyatakan:

Hanya sebagian kata kunci yang dapat digunakan pada baris setelah kata kunci Pencocokan. Kata kunci yang tersedia adalah. . .

Daftar yang kata kunci tidak termasuk: ChallengeResponseAuthentication.

Cara yang sangat menyenangkan yang saya temukan adalah menggunakan AuthenticationMethodsyang dalam kasus Anda akan berfungsi seperti:

Match Group sudoers
AuthenticationMethods 'publickey'

AuthenticationMethods mengambil daftar nilai yang dipisahkan koma yang mewakili serangkaian metode yang harus dilewati pengguna sebelum mengakses server.

AuthenticationMethods 'publickey,password' akan memaksa pengguna untuk lulus dengan kunci publik dan kemudian kata sandi.

Untuk membaca lebih lanjut man sshd_config.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.