Mình dùng pass làm trình quản lý mật khẩu. Mỗi lần muốn nhập thông tin đăng nhập, mình phải mở khóa GPG key dùng để mã hóa các file mật khẩu.
Ở máy bàn, nơi rất ít khả năng người khác có thể tiếp cận, mình không khóa key này để thuận tiện hơn. Do đó mình sẽ mở khóa sẵn GPG key khi đăng nhập thay vì nhập mật khẩu mỗi khi cần. Mình dùng pam-gnupg để làm điều này.
Điều kiện
- Thư mục
.gnupg
nên đặt ở~/
. - Mật khẩu người dùng linux phải giống với mật khẩu mở khóa khóa GPG.
Cài đặt
xbps-install -S pam-gnupg
Lấy mã định danh
Bước này chúng ta tìm mã định danh cho key mà bạn muốn mở khóa tự động.
gpg -K --with-keygrip
- Tìm khóa bạn muốn tự động mở khóa.
- Để ý dòng bắt đầu bằng
ssb
và kết thúc bằng[E]
. - Ngay phía dưới có dòng
Keygrip = <mã định danh>
- Sao chép mã định danh (40 ký tự) vào
~/.config/pam-gnupg
.
Cài đặt PAM
- Thêm hai dòng này vào
/etc/pam.d/system-local-login
. - Dòng
auth
nằm ở cuối mụcauth
. - Dòng
session
nằm cuối mụcsession
.
auth optional pam_gnupg.so store-only
session optional pam_gnupg.so
Sau khi thêm vào, /etc/pam.d/system-local-login
sẽ trông như thế này:
#%PAM-1.0
auth include system-login
auth optional pam_gnupg.so store-only
account include system-login
password include system-login
session include system-login
session optional pam_gnupg.so
Thành quả
Sau khi thực hiện xong các bước trên, hãy khởi động lại máy và đăng nhập như bình thường.
Nếu đã làm đúng, bạn sẽ thấy một tiến trình tên là gpg-agent
đang chạy ngay sau khi đăng nhập.
Gỡ bỏ
Để gỡ bỏ hãy chạy lệnh này:
xbps-remove -R pam-gnupg
Sau đó xóa hai dòng đã thêm trong bước Cài đặt pam.d phía trên.
Ghi chú
Tìm hiểu bài viết này để tối giản hóa thao tác đăng nhập.