⚠️ CentOS 7 đã hết hỗ trợ từ 30/06/2024. Hệ điều hành này không còn nhận bản vá an ninh, nên đừng dựng máy chủ mới trên nó. Các bước trong bài phần lớn vẫn chạy được, nhưng với máy mới hãy chọn AlmaLinux 9 (dòng kế thừa CentOS, lệnh yum và dnf gần như giữ nguyên) hoặc Ubuntu 24.04. Đang chạy CentOS 7 và cần chuyển, hãy nhắn qua khung chat ở góc phải màn hình.
dnf thay cho yum). Xem bài Chọn hệ điều hành nào cho VPS.Lưu ý: CentOS 7 đã hết vòng đời từ tháng 6/2024 (không còn bản vá bảo mật). Các bước trong bài vẫn áp dụng tương tự cho AlmaLinux / Rocky Linux – dòng kế thừa CentOS; máy mới quý khách nên chọn AlmaLinux hoặc Ubuntu LTS. Xem thêm bài chọn hệ điều hành nào cho VPS.
Thủ thuật này mình thấy chưa ổn định. Bạn nên áp dụng lên VPS New, để nếu sự cố gì thì có thể rebuild lại
Chuẩn bị
Cài đặt
Bước 1: Tải về các công cụ cần thiết để biên dịch
yum install pam-devel make gcc git wget automake nano libtool -y

Bước 2: Clone mã nguồn từ Github về
git clone https://github.com/google/google-authenticator-libpam.git

Bước 3: Set các biến môi trường. Paste 4 lệnh sau vào Terminal export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_CTYPE=en_US.UTF-8

Bước 4: Tiến hành biên dịch
cd google-authenticator-libpam/ chmod +x bootstrap.sh ./bootstrap.sh

./configure

make

sudo make install

Bước 5: Lấy Secret Key
Chạy lệnh google-authenticator
Ghi lại phần Secret Key để nhập vào điện thoại

Bước 6: Mở App Google Authenticator trên ĐT. Chọn dấu +. Nhập khoá thiết lập và nhập Secret Key vào mục khoá của bạn. Chọn loại khoá là Dựa theo thời gian . Sau đó lấy code tạo ra từ app nhập vào Terminal

Sau đó bạn copy emergency scratch codes được tạo ra. Hãy lưu trữ mã ngày cẩn thận vì đây là mã bạn có thể dùng để đăng nhập nếu điện thoại bị mất hoặc quên ở nhà
Sau đó có một số tuỳ chọn khác, bạn có thể chọn y hoặc n tuỳ nhu cầu
Bước 7: Sửa file cấu hình
nano /etc/pam.d/sshd
Chèn thêm dòng sau vào
auth required pam_google_authenticator.so

Sửa tiếp file cấu hình SSH
nano /etc/ssh/sshd_config
Tìm tới dòng
#ChallengeResponseAuthentication yes ChallengeResponseAuthentication no

Và sửa lại thành
ChallengeResponseAuthentication Yes

Bước 7: Khởi chạy lại SSH
service sshd restart
Khi login vào các bạn sẽ nhập mã 2FA trước rồi mới nhập Password Root nhé