Password Store (pass) là chương trình UNIX đơn giản dùng GNU Privacy Guard (GPG) và Git để bảo mật, quản lý mật khẩu trên Linux. Nhẹ, nhanh, nhưng truy xuất mật khẩu hơi phiền. Nếu dùng Emacs, gói password-store làm giao diện frontend giúp tự động hóa quy trình.
password-store (Emacs package) nhẹ, đơn giản, dễ mở rộng bằng plugin cộng đồng.
Password Store hoạt động như thế nào?
Password Store tạo/sửa mật khẩu dưới dạng văn bản thuần túy. Mỗi tài khoản/mật khẩu là một file text.
Nghe có vẻ không an toàn, nhưng Password Store mã hóa tất cả file bằng GPG. Linh hoạt văn bản thuần túy + bảo mật GPG.
Vì chỉ xử lý file đơn giản, bạn có thể phân loại, sắp xếp file vào thư mục khác nhau.
Password Store cho phép thêm thông tin bổ sung cho file mật khẩu. Chỉ yêu cầu dòng đầu tiên chứa mật khẩu. Ví dụ file mật khẩu tài khoản diễn đàn:
thisismysupersecretpassword ===============INFORMATION=============== Username: MySuperCoolName Security Question 1: Yogi Security Question 2: 1992 Toyota Corolla Security Question 3: Smith OTP Key: aabbccddff11223344 ========================================
Password Store không đọc thông tin sau dòng đầu. Bạn tự do thêm thông tin tùy ý. Chương trình cho phép thư mục mật khẩu tùy chỉnh và định dạng mật khẩu tùy chỉnh.
Cài đặt Password Store
Dễ cài, có sẵn hầu hết distro Linux.
- Debian/Ubuntu:
sudo apt install pass gnupg
- Fedora:
sudo dnf install pass gnupg2
- Arch Linux:
sudo pacman -S pass gnupg
Tạo kho mật khẩu (Password Store)
Cần 2 bước:
- Có khóa GPG: khóa liên kết với Password Store. Tạo mới hoặc dùng khóa cũ.
- Khởi tạo Password Store: đơn giản (chỉ GPG) hoặc kiểm soát phiên bản (GPG + Git). Cả hai chỉ cần một lệnh.
Tạo khóa GPG cho kho
Password Store dựa vào GPG mã hóa. Cần khóa GPG riêng để an toàn.
- Tạo khóa GPG:
gpg --full-generate-key
- Wizard hỏi thuật toán mã hóa. Mặc định RSA – nhấn Enter.
Đặt độ dài và thời hạn khóa GPG
- Wizard hỏi độ dài khóa. Khóa dài hơn khó phá hơn. Ví dụ chọn 4096.
- Hỏi khóa có hết hạn không. Khuyên dùng khóa có hạn để tự thu hồi nếu bị lộ hoặc quên mật khẩu. Ví dụ đặt 6m (6 tháng).
- Nhập tên và email (chỉ dùng để hiển thị khi mã hóa/giải mã).
- Đặt mật khẩu truy cập khóa. Phải mạnh và dễ nhớ (dùng mỗi lần truy cập Password Store).
Khởi động kho mật khẩu
2 cách:
- Kho đơn giản (mặc định GPG):
cd /home/$USER/ && pass init "your-gpg-email"
Tạo kho tại~/.password-store.
- Kho kiểm soát Git:
pass git init
Cho phép kiểm soát lịch sử, quay lại thay đổi. Xem remote:pass git remote get-url --all
Tích hợp Emacs với Password Store
Nếu dùng Emacs, cài gói password-store từ kho MELPA.
MELPA không có sẵn Emacs mặc định. Thêm vào config:
- Thêm vào file
init.el:(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (package-initialize) - Khởi động lại Emacs.
- Alt+X →
package-install→ gõpassword-store.
- Emacs tải, biên dịch, cài đặt. Lệnh truy cập: Alt+X →
password-store-version.
Thêm mật khẩu mới vào kho
- Alt+X →
password-store-insert. - Nhập tên mật khẩu muốn thêm.
- Nhập mật khẩu (được che khuất).
Chỉnh sửa mục trong kho
Điểm mạnh: tùy chỉnh file mật khẩu, thêm thông tin tùy ý.
- Alt+X →
password-store-edit. - Nhập tên mật khẩu cần sửa (ví dụ "forum-account").
- Nhập mật khẩu khóa GPG. Emacs mở buffer chứa nội dung file mật khẩu để chỉnh sửa.
- Lưu: Ctrl+X, Ctrl+S. Kết thúc: Ctrl+X, K (đóng buffer, commit thay đổi).
Xóa mật khẩu trong kho
Alt+X → password-store-remove → nhập tên mật khẩu → Enter.
Sao chép mật khẩu từ kho
- Alt+X →
password-store-copy. - Nhập tên mật khẩu → copy vào clipboard.
Bây giờ bạn biết dùng Emacs quản lý mật khẩu với Password Store – trình quản lý mật khẩu dựa trên file đơn giản, mạnh mẽ.
Câu hỏi thường gặp
1. Password Store có tạo mật khẩu tự động như KeePassXC không?
Có! Alt+X → password-store-generate. Nhập tên tài khoản → tạo mật khẩu ngẫu nhiên. Copy bằng password-store-copy.
2. Có hỗ trợ OTP (mật khẩu một lần) không?
Có! Cần cài gói mở rộng OTP.
Debian/Ubuntu:
sudo apt install pass-extension-otpFedora:
sudo dnf install pass-otpArch:
sudo pacman -S pass-otpSau đó:
pass otp insert "account-name"Tạo mã OTP:
pass otp "account-name".
3. Hiển thị mật khẩu dạng cây trong Emacs được không?
Không trực tiếp. Nhưng dùng tab-completion với package minibuffer completion (helm, mct – có trên GNU ELPA, cài bằng package-install).