Pembatasan SSHd per basis pengguna

9

Saya perlu membatasi pengguna tertentu sehingga mereka hanya bisa SSH dalam menggunakan kunci ssh dan pengguna lain bisa masuk menggunakan kunci atau kata sandi.

sebuah contoh:

Saya ingin pengguna root dapat login jarak jauh (melalui sshd) menggunakan kunci, jadi tidak ada kata sandi yang akan diterima (bahkan jika kata sandi benar)

dan untuk pengguna lain (semua orang di sistem) mereka dapat masuk menggunakan kunci dan / atau kata sandi

bagaimana saya melakukannya?

alexus
sumber

Jawaban:

0

Apa yang akan saya lakukan adalah mengatur /etc/sshd/sshd_configsedemikian rupa sehingga:

PermitRootLogin without-password

hanya untuk keamanan ekstra dan untuk menghindari kata sandi root terkunci (itu hanya akan memungkinkan root untuk masuk menggunakan kunci)

Saya malah akan menggunakan AllowGroupssebagai ganti AllowUser, karena bagi saya akan lebih nyaman untuk menambahkan pengguna ke grup daripada ke sshd_configtetapi itu bisa tergantung pada preferensi pribadi Anda.

golan
sumber
13

Saya pikir yang Anda inginkan adalah "Cocokkan Pengguna". Anda menggunakannya untuk mencocokkan nama pengguna, lalu membuat serangkaian pengaturan konfigurasi yang berlaku khusus untuk pengguna itu.

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Saya menggunakan ini untuk mengatur akses chroot SFTP-only kadang-kadang untuk klien.

Devin Ceartas
sumber
Perhatikan bahwa tidak semua pengaturan dapat ditulis di Matchblok. Lihat man 5 sshd_configdetailnya.
ynn
2

Atur ssh sebagai berikut:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

Mulai ulang SSH

Kemudian berikan kunci kepada mereka yang ingin Anda hindari menggunakan kata sandi.

ssh-keygen digunakan untuk menghasilkan pasangan kunci itu untuk Anda. Berikut adalah sesi di mana pasangan kunci pribadi / publik pribadi Anda dibuat:

#ssh-keygen -t rsa

Perintah ssh-keygen -t rsa memprakarsai pembuatan pasangan kunci.

Saya tidak memasukkan frasa sandi untuk pengaturan saya (tombol Enter malah ditekan).

Kunci pribadi disimpan dalam .ssh / id_rsa. File ini hanya-baca dan hanya untuk Anda. Tidak ada orang lain yang harus melihat konten file itu, karena digunakan untuk mendekripsi semua korespondensi yang dienkripsi dengan kunci publik.

Kunci publik disimpan di .ssh / id_rsa.pub.

Isinya kemudian disalin dalam file .ssh / authorized_keys dari sistem yang Anda inginkan untuk SSH tanpa diminta kata sandi.

#scp id_rsa.pub remote system:~/.ssh/authorized_keys

Akhirnya kunci akun (Otentikasi kunci masih dapat dilakukan.)

# passwd -l username1
Patrick R
sumber
Bukan itu yang saya cari. katakanlah saya ingin login hanya menggunakan kunci dan pengguna lain dapat login dengan kunci atau kata sandi
alexus
maka jangan mengunci akun dengan passwd -l username1
Patrick R