Kích hoạt mật khẩu một lần trong Ubuntu 24.04 cho SSH hoặc đăng nhập cục bộ
Hướng dẫn này chỉ ra cách bật Mật khẩu một lần trong Ubuntu 24.04 để đăng nhập SSH cục bộ hoặc từ xa.
Mật khẩu một lần, viết tắt là OTPW, là một mô-đun PAM hữu ích để cho phép người dùng đăng nhập vào máy tính/máy chủ công cộng hoặc dùng chung bằng mật khẩu sử dụng một lần, chỉ hoạt động một lần.
Bằng cách tạo danh sách mật khẩu OTPW và định cấu hình hệ thống của bạn để cho phép đăng nhập OTPW, nó sẽ hỏi ngẫu nhiên một trong các mật khẩu OTPW mỗi lần đăng nhập. Và mật khẩu đó sẽ không bao giờ hoạt động trở lại sau khi đăng nhập thành công.
Bước 1: Cài đặt gói OTPW
Gói OTPW có sẵn trong kho vũ trụ cho tất cả các bản phát hành Ubuntu hiện tại.
Để cài đặt nó, hãy mở terminal (Ctrl+Alt+T) hoặc kết nối để xóa máy chủ và chạy lệnh:
sudo apt install libpam-otpw otpw-bin
Ở đây, gói libpam-otpw
bao gồm mô-đun PAM có thể kích hoạt đăng nhập mật khẩu OTPW. Trong khi otpw-bin
cung cấp lệnh tạo mật khẩu OTPW.
Bước 2: Tạo danh sách mật khẩu OTPW
Sau khi cài đặt các gói ở trên, bây giờ bạn có thể chạy lệnh bên dưới để tạo mật khẩu ngẫu nhiên:
otpw-gen > ~/otpw_passwords
Lệnh sẽ tạo một tệp có tên “otpw_passwords
” trong thư mục chính của người dùng, bao gồm 280 mật khẩu được tạo ngẫu nhiên.
Và nó sẽ yêu cầu bạn đặt mật khẩu tiền tố. Khi đăng nhập bằng module OTPW, bạn cần gõ mật khẩu tiền tố + mật khẩu OTPW này. Vì vậy, người khác không thể truy cập vào tài khoản của bạn ngay cả khi bạn mất danh sách mật khẩu.
Bất cứ lúc nào, bạn có thể chạy lại lệnh cuối cùng để tạo lại danh sách mật khẩu. Điều này sẽ ghi đè cả tiền tố trước đó và mật khẩu một lần.
Mật khẩu chỉ hoạt động đối với tài khoản người dùng đã tạo chúng. Đối với bất kỳ người dùng nào khác, hãy chạy lệnh su username
để chuyển sang người dùng đó và chạy lại otpw -gen
hoặc thay vào đó sử dụng lệnh bên dưới:
su -c "otpw-gen > ~/otpw_passwords" username
Trong lệnh, thay thế tên người dùng
bằng tên tài khoản đích.
Và đây là danh sách mật khẩu mẫu. Đối với bạn, hãy chụp ảnh bằng điện thoại hoặc in ra để sử dụng sau.
Bước 3: Yêu cầu hệ thống của bạn cho phép đăng nhập mật khẩu OTPW
1. Trước tiên, hãy chạy lệnh bên dưới để tạo tệp cấu hình PAM và chỉnh sửa bằng trình soạn thảo văn bản dòng lệnh nano:
sudo nano /etc/pam.d/ssh-otpw
Khi nó mở ra, hãy vượt qua các dòng bên dưới để xác thực bằng mô-đun otpw và cho phép truy cập ngay lập tức nếu thành công.
auth sufficient pam_otpw.so
session optional pam_otpw.so
Cuối cùng nhấn Ctrl+S để lưu và Ctrl+X để thoát.
Kích hoạt OTPW để đăng nhập SSH
2. Để bật mô-đun OTPW PAM cho SSH, sau đó chỉnh sửa tệp cấu hình PAM sshd
bằng lệnh:
sudo nano /etc/pam.d/sshd
Khi tệp mở ra, hãy bao gồm cấu hình bạn vừa tạo bằng cách thêm @include ssh-otpw. LƯU Ý rằng, bạn cần phải:
- hoặc vô hiệu hóa @include common-auth (thêm # vào đầu), do đó, đăng nhập bằng mật khẩu tĩnh cổ điển sẽ KHÔNG còn hoạt động (đối với tất cả người dùng)! Đảm bảo bạn có phương pháp xác thực thay thế trong trường hợp hết mật khẩu OTPW.
- hoặc đảm bảo @include common-auth ở dưới @include ssh-otpw, nếu không nó sẽ yêu cầu mật khẩu tĩnh trước!
3. Sau đó, cũng chỉnh sửa tệp cấu hình daemon SSH bằng cách chạy lệnh:
sudo nano /etc/ssh/sshd_config
Khi tệp mở ra, hãy tìm hiểu các dòng bên dưới và đặt (hoặc thêm dòng nếu chúng KHÔNG tồn tại) để sử dụng xác thực PAM:
Sử dụngPAM có
KbdInteractiveXác thực có
Đồng thời đặt Số xác thực mật khẩu
, mặc dù mật khẩu tĩnh sẽ vẫn hoạt động trừ khi @include common-auth
bị tắt trong cấu hình PAM hoặc KbdInteractiveAuthentication
cũng bị tắt trong cấu hình sshd này.
4. Khi chỉnh sửa tệp xong, nhấn Ctrl+S để lưu và Ctrl+X để thoát. Cuối cùng, khởi động lại SSH để áp dụng các thay đổi:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
Đối với Ubuntu 22.04 cũ trở về trước, chỉ chạy sudo systemctl restart ssh
mới hoạt động.
5. Tiếp theo, bạn có thể thử bắt đầu kết nối SSH tới máy tính hoặc máy chủ này.
Nó sẽ yêu cầu mật khẩu với 3 số kỹ thuật số. Trong ảnh chụp màn hình, nó yêu cầu mật khẩu 004. Khi tôi đặt mật khẩu tiền tố thành “ade564” và tệp mật khẩu hiển thị cho tôi 004 Zh63 7Qyi. Vì vậy, tôi cần nhập ade564Zh637Qyi để nhận pass.
LƯU Ý 1: Nếu bạn để @include common-auth
được bật trong tệp cấu hình /etc/pam.d/sshd
, việc nhập mật khẩu tĩnh của người dùng sẽ cũng cho bạn vào!
LƯU Ý 2: Nếu người khác cố gắng đăng nhập cùng lúc khi bạn đăng nhập, nó CÓ THỂ yêu cầu 3 mật khẩu thay vì một. Lời nhắc có thể giống như “Mật khẩu 004/027/134”. Trong trường hợp này, bạn cần gõ tiền tố + 3 mật khẩu theo thứ tự. Sau khi đăng nhập bạn cần xóa ~/.otpw.lock
nếu không nó sẽ yêu cầu 3 mật khẩu.
(tùy chọn) Kích hoạt Mật khẩu một lần để đăng nhập máy tính để bàn cục bộ
Nếu bạn muốn sử dụng mật khẩu một lần để đăng nhập Ubuntu Desktop, thì hãy chỉnh sửa tệp cấu hình PAM common-auth
bằng cách chạy lệnh:
sudo nano /etc/pam.d/common-auth
Khi tệp mở ra, hãy thêm @include ssh-otpw ở trên cùng và lưu.
Lần tiếp theo trên màn hình đăng nhập, khi bạn nhấp vào người dùng đã tạo danh sách mật khẩu OTPW, nó sẽ hiển thị cho bạn “Mật khẩu XXX” yêu cầu nhập mật khẩu OTPW tương ứng (đừng quên thêm mật khẩu tiền tố khi nhập).
Ngoài ra, nhập mật khẩu người dùng tĩnh cũng sẽ cho phép bạn đăng nhập!
Hoàn tác:
Để tắt mật khẩu một lần, chỉ cần xóa dòng @include ssh-otpw khỏi /etc/pam.d/sshd
hoặc /etc/pam.d/ common-auth
tùy thuộc vào tệp bạn đã bật.
Tùy chọn, bạn có thể xóa gói mô-đun để tiết kiệm ít dung lượng ổ đĩa:
sudo apt remove --autormove libpam-otpw