Deskripsi masalah
Saat Anda menghubungkan ke instans Linux menggunakan SSH, koneksi gagal dengan pesan Permission denied, please try again, meskipun menggunakan username dan password yang benar.
Diagnosis masalah
Login ke instans ECS menggunakan koneksi VNC.
Buka ECS console - Instances. Di pojok kiri atas, pilih wilayah dan kelompok sumber daya untuk instans target.
Buka halaman detail instans target. Klik Connect dan pilih VNC. Masukkan kredensial Anda untuk login ke instans ECS.
-
Periksa konfigurasi layanan SSH.
Jika parameter
PermitRootLoginatauPasswordAuthenticationdiatur kenodalam konfigurasi, lihat Kasus penggunaan 1: Konfigurasi SSH menolak login untuk mengatasi masalah tersebut.-
PermitRootLogin: Jika diatur keno, parameter ini mencegah pengguna root login melalui SSH. -
PasswordAuthentication: Jika diatur keno, parameter ini mencegah semua pengguna login menggunakan otentikasi berbasis password.
sudo cat /etc/ssh/sshd_config -
-
Periksa log keamanan sistem.
Saat kebijakan SELinux memblokir upaya login, pesan error dicatat dalam log keamanan sistem.
Kebijakan SELinux adalah seperangkat aturan Mandatory Access Control yang menentukan operasi apa saja yang dapat dilakukan setiap proses terhadap file, port, atau resource 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 tidak menghasilkan output, kemungkinan besar penyebabnya adalah kebijakan SELinux. Lihat Kasus penggunaan 2: Kebijakan SELinux memblokir login.
Resolusi
Kasus penggunaan 1: Konfigurasi SSH menolak login
-
Ubah konfigurasi
sudo vi /etc/ssh/sshd_configAtur parameter sesuai kebutuhan:
-
Aktifkan otentikasi berbasis password: Ubah
PasswordAuthentication nomenjadiPasswordAuthentication yes. -
Izinkan login pengguna root:
-
Aktifkan otentikasi berbasis kunci (Direkomendasikan): Untuk menggunakan pasangan kunci saat login sebagai root, atur
PermitRootLoginkeprohibit-password. -
Aktifkan otentikasi berbasis password: Ubah
PermitRootLogin nomenjadiPermitRootLogin yes.PentingMengizinkan login root dengan password (
PermitRootLogin yes) meningkatkan risiko instans terhadap serangan brute-force. Kami menyarankan Anda menggunakan otentikasi berbasis kunci atau membatasi akses berdasarkan alamat IP sumber sebagai gantinya.
-
Setelah mengubah file, tekan
Esc, ketik:wq, lalu tekanEnteruntuk menyimpan file dan keluar. -
-
Periksa konfigurasi dan restart layanan
-
Verifikasi sintaksis file konfigurasi. Tidak adanya output menunjukkan sintaksis sudah benar.
sudo sshd -t -
Restart layanan SSH agar perubahan diterapkan.
sudo systemctl restart sshd
-
-
Verifikasi koneksi
Sambungkan kembali ke instans menggunakan SSH untuk memastikan masalah telah teratasi.
Kasus penggunaan 2: Kebijakan SELinux memblokir login
-
Periksa status saat ini dari SELinux
Periksa apakah SELinux berada dalam mode
enforcing.sudo sestatusJika output menunjukkan
SELinux statussebagaienableddanCurrent modesebagaienforcing, maka kebijakan SELinux sedang aktif. -
Ubah sementara mode SELinux untuk memulihkan akses
Ubah sementara SELinux ke mode
Permissive. Dalam mode ini, SELinux mencatat peringatan tetapi tidak memblokir operasi.sudo setenforce 0PentingPerubahan ini bersifat sementara dan akan kembali ke pengaturan semula saat instans direstart.
Setelah menjalankan perintah, coba login kembali menggunakan SSH. Login yang berhasil mengonfirmasi bahwa SELinux adalah penyebab masalah.
-
Ubah permanen konfigurasi SELinux (Opsional)
-
Ubah file konfigurasi. Ganti mode default SELinux dari
enforcingmenjadipermissive.sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config -
Restart instans agar perubahan diterapkan.
-
-
Verifikasi koneksi
Sambungkan kembali ke instans menggunakan SSH untuk memverifikasi koneksi.