Tự động mở khóa GPG

20250518 #linux

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

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.


Bài viết liên quan