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
.gnupgnê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.
Thiết lập PAM
Thêm hai dòng này vào /etc/pam.d/login, dòng auth nằm ở cuối mục auth, dòng session nằm cuối mục session.
auth optional pam_gnupg.so store-only
session optional pam_gnupg.so
Sau khi thêm vào, /etc/pam.d/login sẽ trông như thế này:
#%PAM-1.0
auth required pam_securetty.so
auth requisite pam_nologin.so
auth include system-local-login
auth optional pam_gnupg.so store-only
account include system-local-login
session include system-local-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
Xóa hai dòng đã thêm trong file /etc/pam.d/login ở bước Thiết lập pam.d phía trên.
Xóa file ~/.config/pam-gnupg.
Hơn thế nữa
Tìm hiểu tự động đăng nhập Linux để tối giản hóa thao tác đăng nhập.