Deskripsi masalah
Koneksi SSH ke instans Linux gagal dengan pesan Permission denied, please try again, meskipun username dan password sudah benar.
Diagnosis masalah
Login ke instans ECS menggunakan koneksi VNC.
Buka ECS console - Instance. Di bilah navigasi atas, pilih wilayah target dan grup resource target.
Buka halaman detail instans target, klik Connect, lalu pilih VNC. Masukkan username dan password untuk login ke instans ECS.
Periksa konfigurasi layanan SSH.
Jika parameter
PermitRootLoginatauPasswordAuthenticationdiatur kenodalam konfigurasi, lihat Kasus penggunaan 1: Login SSH dinonaktifkan dalam konfigurasi untuk mengatasi masalah tersebut.PermitRootLogin: Jika diatur ke "no", root user tidak dapat login melalui SSH.PasswordAuthentication: Jika diatur ke "no", semua users tidak dapat login menggunakan autentikasi password.
sudo cat /etc/ssh/sshd_configPeriksa log keamanan sistem.
Jika kebijakan SELinux memblokir upaya login, kesalahan akan tercatat dalam log keamanan.
Kebijakan SELinux adalah serangkaian aturan kontrol akses wajib yang mendefinisikan tindakan yang diizinkan bagi suatu proses terhadap file, port, atau resources lainnya.
# Untuk sistem CentOS/RHEL sudo grep -iE --color=auto 'Could not get shadow information' /var/log/secure # Untuk sistem Debian/Ubuntu sudo grep -iE --color=auto 'Could not get shadow information' /var/log/auth.logJika perintah tersebut tidak menghasilkan output, kemungkinan penyebabnya adalah kebijakan SELinux. Dalam hal ini, lihat Kasus Penggunaan 2: Login diblokir oleh kebijakan SELinux untuk mengatasi masalah tersebut.
Mengatasi masalah
Kasus penggunaan 1: Login SSH dinonaktifkan dalam konfigurasi
Ubah konfigurasi
sudo vi /etc/ssh/sshd_configAtur parameter berikut sesuai kebutuhan:
Izinkan autentikasi password: Ubah
PasswordAuthentication nomenjadiPasswordAuthentication yes.Izinkan login root user:
Izinkan autentikasi berbasis kunci (Direkomendasikan): Untuk menggunakan pasangan kunci untuk login root, atur
PermitRootLoginkeprohibit-password.Izinkan autentikasi password: Ubah
PermitRootLogin nomenjadiPermitRootLogin yes.PentingMengizinkan login root dengan password (
PermitRootLogin yes) meningkatkan risiko instans terhadap serangan brute-force. Disarankan untuk menggunakan autentikasi berbasis kunci atau membatasi akses berdasarkan alamat IP sumber.
Setelah Anda mengubah file, tekan
Esc, ketik:wq, lalu tekanEnteruntuk menyimpan file dan keluar.Periksa konfigurasi dan restart layanan
Verifikasi sintaks file konfigurasi. Tidak adanya output menandakan bahwa sintaksis sudah benar.
sudo sshd -tRestart layanan SSH agar perubahan diterapkan.
sudo systemctl restart sshd
Verifikasi koneksi
Lakukan koneksi ulang ke instans menggunakan SSH untuk memastikan masalah telah teratasi.
Kasus penggunaan 2: Login diblokir oleh kebijakan SELinux
Periksa status SELinux saat ini
Periksa apakah SELinux dalam mode
enforcing.sudo sestatusJika output menunjukkan
SELinux statussebagaienableddanCurrent modesebagaienforcing, maka kebijakan SELinux aktif.Ubah mode SELinux untuk sementara untuk memulihkan akses
Ubah mode SELinux ke mode
Permissiveuntuk sementara. Dalam mode ini, SELinux akan mencatat peringatan, tetapi tidak memblokir operasi.sudo setenforce 0PentingPerubahan ini hanya sementara dan akan direset saat instans dimulai ulang.
Setelah Anda menjalankan perintah, coba login kembali menggunakan SSH. Jika berhasil, ini mengonfirmasi bahwa SELinux adalah penyebab masalahnya.
Ubah konfigurasi SELinux secara permanen (Opsional)
Ubah file konfigurasi. Ubah mode default SELinux dari
enforcingmenjadipermissive.sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/configMulai ulang instans untuk menerapkan perubahan.
Verifikasi koneksi
Lakukan koneksi ulang ke instans menggunakan SSH untuk memastikan masalah telah teratasi.