cara menonaktifkan login SSH dengan kata sandi untuk beberapa pengguna?


166

Di Linux (Debian Squeeze) saya ingin menonaktifkan login SSH menggunakan kata sandi untuk beberapa pengguna (grup yang dipilih atau semua pengguna kecuali root). Tapi saya tidak ingin menonaktifkan login menggunakan sertifikat untuk mereka.

sunting: terima kasih banyak untuk jawaban terinci! Untuk beberapa alasan ini tidak berfungsi di server saya:

Match User !root
PasswordAuthentication no

... tetapi dapat dengan mudah diganti oleh

PasswordAuthentication no
Match User root
PasswordAuthentication yes

Mungkin karena lekukan Anda?
nihil

7
Patut disebutkan bahwa baris-baris yang cocok harus di akhir file
zidarsk8

1
! Root juga tidak bekerja untuk saya. Pendekatan kedua berhasil.
natenho

Saya telah melihat kasus di mana Match User "!root,*"pekerjaan itu dilakukan.
Roman Hocke

Jawaban:


181

Coba Matchdi sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

Atau dengan grup:

Match Group users
    PasswordAuthentication no

Atau, sebagaimana disebutkan dalam komentar, dengan negasi:

Match User !root
    PasswordAuthentication no

Perhatikan bahwa pencocokan efektif "hingga baris Pencocokan lain atau akhir file." (indentasi tidak signifikan)


4
lebih suka Match user !rootuntuk kasus ini
84104

1
Luar biasa, saya tidak tahu tentang sintaks Match. Satu saran yang akan saya buat adalah, jika ini adalah server yang menghadap publik, saya tidak akan mengizinkan login root melalui SSH sama sekali. Mungkin bukan masalah besar jika itu internal ..
Safado

4
@SpacemanSpiff Itulah a) kata sandi yang kuat dan b) untukhosthost / fail2ban.
ceejayoz

2
@ deed02392 Anda dapat menganggap kunci sebagai kata sandi yang benar-benar kuat jika Anda mau.
ceejayoz

4
Jauh lebih kuat daripada di ball-park yang sama, itu maksud saya. Otentikasi kata sandi juga harus dinonaktifkan untuk root dan kunci hanya diizinkan untuk login.
deed02392

22

Matchdalam sshd_configbekerja dengan baik. Anda harus menggunakan Match alluntuk mengakhiri blok pertandingan jika Anda menggunakan openssh 6.5p1 atau lebih tinggi. Contoh:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

Itu tidak berhasil untuk saya ...
Dimitrios

"Cocokkan semua" berhasil. Terima kasih. Tanpa "Cocokkan semua" sshd gagal memulai.
Vladimir Kondratyev

3

Ada beberapa cara yang dapat Anda lakukan ini - pertama, Anda dapat menjalankan daemon sshd kedua pada port yang berbeda dengan konfigurasi yang berbeda - ini sedikit meretas, tetapi dengan beberapa chroot, seharusnya bisa berfungsi dengan baik.

Selain itu, Anda dapat mengizinkan otentikasi kata sandi, tetapi mengunci kata sandi untuk semua kecuali satu pengguna. Pengguna dengan kata sandi yang dikunci masih akan dapat mengautentikasi dengan kunci publik.


-1

Anda cukup pergi ke file / etc / ssh / sshd_config dan menambahkan baris Untuk mengizinkan -> AllowUsers user1 Ke Deny ---> DenyUsers user2

kita dapat mengizinkan / menolak login untuk sejumlah host tertentu menggunakan file hosts.allow atau hosts.deny yang terletak di folder / etc


-1

Karena beberapa alasan keamanan, Anda mungkin perlu memblokir akses SSH pengguna tertentu ke kotak Linux.

Edit file sshd_config, lokasinya kadang-kadang akan berbeda tergantung pada distribusi Linux, tetapi biasanya di / etc / ssh /.

Buka file saat masuk sebagai root:

# vi /etc/ssh/sshd_config

Masukkan baris ke akhir file konfigurasi: -

DenyUsers username1 username2 username3 username4

Simpan dan mulai kembali layanan SSH. Pada dasarnya username1, username2, username3 & username4 SSH login tidak diijinkan.

Jalankan perintah di bawah ini untuk memulai kembali yang sama: -

# systemctl restart sshd

Persyaratan sudah dilakukan. Silakan ambil ssh dari pengguna itu dan Anda akan mendapatkan kesalahan "Akses Ditolak"


1
Pertanyaannya adalah tentang menonaktifkan login kata sandi (tetapi tetap login dengan otentikasi kunci).
Gerald Schneider
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.