Saat menginstall vps baru biasanya saya juga menginstall aplikasi shell favorit saya yaitu fish shell. Sebenarnya proses penggantian shell cukup mudah. Tapi ketika ada proses yang kelupaan, disanalah pembelajaran dimulai.

Sempat ingin install ulang vpsnya (cari cara termudah), tapi sayang vps dari Windows Azure yang saya gunakan sudah saya upgrade dari versi 16.04 ke 18.04.3. Saya juga sudah menginstall webinoly dan meng-konfigurasi wordpress, ssl letsencrypt dan banyak setting lainnya.

PAM: Authentication Failure

Kalau servernya di install ulang, sama saja dengan membuat saya kerja beberapa kali.

Sebelum saya memberikan solusi untuk permasalahan ini, ada baiknya saya sharing step-step mengganti shell.

Pertama 

Tetapkan lokasi binary dari shell, karena saya menggunakan fish shell, contohnya seperti ini :

1
2
type fish
fish is /usr/bin/fish

Kedua 

Ganti shell dari default ke fish

1
chsh -s /usr/bin/fish

Simple kan?

Tapi Kenapa Bisa Salah dan Muncul PAM: Authentication Failure? 

Dari pengalaman saya dan referensi yang baca, kesalahan saya itu adalah ketika tidak memasukkan path dari file binary fish ke argument dari chsh.

Contoh yang salah JANGAN DITIRU 

1
chsh -s fish

Lebih fatalnya lagi saya melakukannya sebagai root user. Ketika keluar dari session terminal dan login kembali. Penggunaan sudo tidak ada masalah, tapi ketika mengetik sudo su baru muncul passwords (setting untuk login ke Windows Azure saya menggunakan username dan ssh pub key).

Tentunya saya tidak memiliki password root, karena memang tidak memiliki user root. Saya coba ganti di control panel Azure ke pengaturan yang menggunakan passwords, dan kembali ke terminal.

Saat mengetikkan perintah sudo su lagi, password diterima tapi muncul pesan error seperti ini :

1
Cannot execute fish: No such file or directory

How To Solve CHSH : Asking for Passwords and Get PAM: Authentication Failure Error? 

Proses searching untuk masalah yang saya temui ini cukup memakan waktu karena error yang saya dapat itu sangat spesifik Cannot execute fish. Jadi butuh beberapa kali trial error dalam menentukan keyword pencarian di google.

Untuk mengatasi hal tersebut caranya adalah :

Buka file menggunakan teks editor seperti vim /etc/pam.d/csh

Cari line

1
auth       required   pam_shells.so

Trus tambahkan komentar di bagian awalnya

1
#auth       required   pam_shells.so

Save file tersebut, lalu ganti shellnya dengan benar. Disini saya menggunakan fish shell

1
chsh -s /usr/bin/fish

Prompt untuk meminta password tidak ada lagi, setelah itu edit lagi file /etc/pam.d/chsh tadi trus hilangkan tanda #

Referensi : https://askubuntu.com/questions/812420/chsh-always-asking-a-password-and-get-pam-authentication-failure