Troubleshooting SSH - PasswordAuthentication Masih Yes Padahal Sudah Diubah
Pendahuluan
SSH (Secure Shell) adalah protokol yang digunakan untuk mengakses server secara aman. Salah satu metode autentikasi yang bisa digunakan adalah password atau public key.
Dalam praktik keamanan yang baik, disarankan untuk menonaktifkan password authentication agar hanya login menggunakan public key. Ini mencegah serangan brute-force dan meningkatkan keamanan sistem.
Biasanya, kita cukup mengubah file konfigurasi di:
/etc/ssh/sshd_config
dan mengatur:
PasswordAuthentication no
Namun, terkadang setelah perubahan ini dilakukan, SSH masih tetap menerima login dengan password. Kenapa bisa begitu? Catatan ini akan membantu kamu troubleshoot masalah ini dengan langkah-langkah yang jelas dan terstruktur.
Masalahnya: Sudah Ubah Jadi "No", Tapi Masih "Yes"!
Pernah ngalamin situasi kayak gini? Kamu sudah edit /etc/ssh/sshd_config
dan ubah:
PasswordAuthentication no
Lalu kamu cek konfigurasi dengan:
sudo sshd -T | grep -i passwordauthentication
Hasilnya masih "yes"! Kenapa bisa gitu?
Jangan panik! Yuk kita coba selesaikan masalah ini, kita cek satu-per-satu. Semoga ketemu solusinya.
1. Pastikan SSHD Pakai Config yang Benar
SSH bisa menggunakan beberapa konfigurasi, jadi pastikan dulu yang sedang digunakan.
Cek proses SSHD yang sedang jalan:
sudo pgrep -xa sshd
Kamu akan melihat sesuatu seperti ini:
67238 /usr/sbin/sshd -D
Kalau tidak ada opsi -f /path/to/config
, berarti SSHD pakai default /etc/ssh/sshd_config
.
Konfirmasi dengan:
sudo sshd -T | grep -i passwordauthentication
Kalau masih "yes", lanjut ke langkah berikutnya.
2. Apakah Ada File Konfigurasi Tambahan? (Include)
SSH bisa punya konfigurasi tambahan yang bisa menimpa setting yang sudah kita ubah!
Cek apakah ada perintah Include
di dalam sshd_config
:
grep -i include /etc/ssh/sshd_config
Kalau hasilnya seperti ini:
Include /etc/ssh/sshd_config.d/*.conf
Berarti ada file tambahan yang bisa menimpa pengaturan kita.
List semua file dalam folder tersebut:
ls -l /etc/ssh/sshd_config.d/
Kemudian cari setting yang menimpa:
grep -i passwordauthentication /etc/ssh/sshd_config.d/*.conf
Misalnya, ternyata ada file 50-cloud-init.conf
dengan isi:
PasswordAuthentication yes
Solusinya: Edit file tersebut dan ubah ke no
sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf
Ubah menjadi:
PasswordAuthentication no
Lalu simpan dan keluar (CTRL + X
, lalu Y
, lalu ENTER
).
Catatan:
- Jika ada banyak file dalam
/etc/ssh/sshd_config.d/
, cek satu per satu dan pastikan tidak ada yang menetapkanPasswordAuthentication yes
. - Pastikan tidak ada aturan lain yang override pengaturan ini.
3. Apakah PAM Masih Mengizinkan Password Login?
Cek apakah PAM masih aktif:
grep -i usepam /etc/ssh/sshd_config
Kalau hasilnya:
UsePAM yes
Berarti PAM bisa saja masih mengizinkan password authentication. Solusinya:
sudo nano /etc/ssh/sshd_config
Ubah:
UsePAM no
Simpan dan keluar.
Hati-hati! Menonaktifkan PAM bisa berdampak pada fitur login lain, seperti autentikasi berbasis grup atau module tambahan. Jika memungkinkan, lebih baik sesuaikan konfigurasi PAM di /etc/pam.d/sshd
daripada menonaktifkannya sepenuhnya.
4. Restart SSH dan Cek Lagi!
Setelah semua diubah, restart SSHD:
sudo systemctl restart sshd
Cek lagi konfigurasi:
sudo sshd -T | grep -i passwordauthentication
Pastikan semua berjalan dengan baik:
- Cek status SSHD:
sudo systemctl status sshd
- Tes login dari sesi berbeda: Jangan logout sebelum memastikan login tanpa password bekerja!
- Cek log jika masih bermasalah:
sudo journalctl -u sshd --since "1 hour ago"
Penutup
🔹 Cek config yang dipakai SSH 🠖 pgrep -xa sshd
🔹 Cek apakah ada Include 🠖 grep -i include /etc/ssh/sshd_config
🔹 Cek file tambahan 🠖 grep -i passwordauthentication /etc/ssh/sshd_config.d/*.conf
🔹 Cek apakah PAM aktif 🠖 grep -i usepam /etc/ssh/sshd_config
🔹 Restart SSH dan cek lagi! 🠖 sudo systemctl restart sshd
Semoga dari 4 cara troubleshooting ini, ada yang bisa menyelesaikan masalahmu!