Apa pun yang Anda lakukan, jangan tinggalkan akun dalam keadaan ditinggalkan passwd -u
, dengan bidang kata sandi kosong: yang memungkinkan login tanpa memasukkan kata sandi (kecuali melalui SSH, karena SSH menolak itu).
Ubah akun untuk tidak memiliki kata sandi, tetapi dibuka kuncinya. Akun tidak memiliki kata sandi jika hash kata sandi dalam basis data kata sandi bukan hash dari string apa pun. Secara tradisional, string satu karakter seperti *
atau !
digunakan untuk itu.
Akun yang dikunci juga menggunakan penanda khusus di bidang kata sandi yang menyebabkan string tidak menjadi hash string apa pun. Marker tergantung pada sistem. Di Linux, passwd
perintah menandai kata sandi yang dikunci dengan meletakkan a !
di awal, dan OpenSSH memperlakukan akun sebagai terkunci jika bidang dimulai dengan !
. Varian Unix lain cenderung menggunakan mekanisme yang serupa tetapi tidak identik, jadi berhati-hatilah jika basis data kata sandi Anda dibagikan di antara jaringan yang heterogen.
Di Linux, Anda dapat menonaktifkan akses berbasis kata sandi ke akun sembari mengizinkan akses SSH (dengan beberapa metode otentikasi lainnya, biasanya pasangan kunci) dengan
usermod -p '*' username
Pengguna tidak akan dapat mengubah kembali akun untuk memiliki kata sandi, karena itu mengharuskan mereka untuk memasukkan kata sandi yang valid.
Jika mau, Anda dapat mengonfigurasi SSH untuk menolak otentikasi kata sandi, terlepas dari apakah akun tersebut memiliki kata sandi. Anda masih harus mengatur agar SSH tidak menganggap akun terkunci, jadi misalnya di Linux Anda harus menghapus !
dari bidang kata sandi (tetapi jangan kosongkan bidang tersebut - setel *
seperti dijelaskan di atas) ). Untuk menonaktifkan otentikasi kata sandi untuk SSH, tambahkan PasswordAuthentication
arahan ke /etc/sshd_config
atau /etc/ssh/sshd_config
(mana saja itu di sistem Anda). Gunakan Match
blok untuk membuat arahan itu hanya berlaku untuk pengguna tertentu; Match
blok harus muncul
…
Match User username
PasswordAuthentication no