Giữ thông tin đăng nhập GnuPG được lưu trong bộ nhớ cache cho toàn bộ phiên người dùng


53

GnuPG có thể, với gpg-agent, truy cập bộ đệm vào khóa riêng. Làm cách nào tôi có thể giữ bộ đệm đó hoạt động cho toàn bộ phiên người dùng ?

Khi tôi mở khóa gpg-agent, nó chỉ được lưu trong bộ nhớ cache trong một thời gian giới hạn. Với đại lý của SSH, tôi nhập cụm mật khẩu một lần và nó được lưu trong bộ nhớ cache cho toàn bộ phiên. Tôi muốn hành vi tương tự từ gpg-agent.

Vì vậy, ssh-agentkhông bị hạn chế tuổi thọ bộ nhớ cache. Nhưng gpg-agentgiới hạn tuổi thọ bộ nhớ cache, ít nhất là theo mặc định. Làm thế nào tôi có thể loại bỏ giới hạn về thời gian bộ nhớ cache từ gpg-agent?

Câu trả lời:


69

Lên đến GnuPG 2

Cấu hình người dùng (trong ~/.gnupg/gpg-agent.conf) chỉ có thể xác định thời lượng bộ đệm ẩn mặc định và tối đa; nó không thể bị vô hiệu hóa.

Các default-cache-ttltùy chọn thiết lập thời gian chờ (tính bằng giây) sau khi hoạt động GnuPG cuối cùng (để nó reset nếu bạn sử dụng nó), các maximum-cache-ttltùy chọn thiết lập khoảng thời gian (tính bằng giây) nó lưu trữ sau khi nhập mật khẩu của bạn. Giá trị mặc định là 600 giây (10 phút) default-cache-ttlvà 7200 giây (2 giờ) maximum-cache-ttl.

Đặt nó thành một năm hoặc lâu hơn - giả sử, 34560000 giây (400 ngày) - và bạn sẽ ổn:

default-cache-ttl 34560000
maximum-cache-ttl 34560000

Nhưng để thay đổi này có hiệu lực, bạn cần kết thúc phiên bằng cách khởi động lại gpg-agent.

Nếu bạn muốn giới hạn độ dài phiên của mình, bạn cần phải giết daemon khi đăng xuất. Điều này rất khác nhau giữa các hệ điều hành, vì vậy tôi đang đề cập đến một câu hỏi / câu trả lời khác có chứa gợi ý cho các hệ thống khác nhau .

Bạn cũng có thể khởi động lại gpg-agenttrong quá trình đăng nhập, nhưng điều này không giới hạn thời gian lưu vào bộ nhớ cache mà là thông tin đăng nhập của người dùng. Quyết định chính mình nếu đây là một vấn đề trong trường hợp của bạn.

GnuPG 2.1 trở lên

Trong GnuPG 2.1 trở lên, maximum-cache-ttltùy chọn đã được đổi tên thành max-cache-ttlkhông có thay đổi gì thêm.


Đây có phải là một người bạn không thể làm những gì bạn yêu cầu phản hồi của ai không? Không rõ ràng, vì bạn đang nói về việc giới hạn thời lượng phiên hoặc giới hạn thời gian lưu trữ. Tôi muốn hoàn toàn ngược lại với điều đó: không có giới hạn tùy ý về thời gian bộ đệm hoặc thời lượng phiên.
bignose

Loại đó, bạn chỉ có thể giải quyết bằng cách đặt một ttl khá lớn. Đặt nó thành một năm hoặc lâu hơn và bạn sẽ ổn - nhưng cần kết thúc phiên bằng cách khởi động lại gpg-agent.
Jens Erat

Xin lưu ý rằng trong các phiên bản mới nhất (ít nhất là gnupg 2.1), maximum-cache-ttltùy chọn không tồn tại. Để xem các tùy chọn chính xác, hãy xem tài liệu chính thức: gnupg.org/documentation/manuals/gnupg/ Kẻ
Pablo Olmos de Aguilera C.

3
Ít nhất trong GnuPG 2.1, mặc định default-cache-ttllà 600 giây (10 phút), không phải hai giờ.
jlh

@jlh Nhìn vào các trang man cho các phiên bản khác nhau gpg-agent, giá trị chính xác dường như là 10 phút cho tất cả các bản phát hành. Tôi chỉnh sửa câu trả lời, cảm ơn bạn đã chỉ ra điều này.
Jens Erat

7

Cho cửa sổ

Tập tin bạn cần chỉnh sửa nên được đặt tại: $env:AppData\gnupg

Nếu bạn chạy nó trong cửa sổ PowerShell, nó sẽ mở: C:\Users\<UserName>\AppData\Roaming\gnupg

Chỉ cần đặt gpg-agent.conftập tin ở đó với bất kỳ giá trị nào bạn thích.

Bạn có thể xác minh nó đã được thực hiện bằng cách chạy:

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

Bạn cũng có thể sử dụng một lớp lót này: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"


Nếu câu trả lời thứ hai ở đây không phù hợp, chúng ta có thể chuyển câu hỏi này sang câu hỏi của riêng mình, được gắn thẻ với Windows. Không chắc chắn điều gì đúng :)
Cuba

Cảm ơn và giữ nó ở đây - tốt để có tất cả thông tin ở một nơi. 👍
barfuin

5

Đảm bảo tải lại tác nhân gpg của bạn gpg-connect-agent reloadagent /byesau khi thay đổi cấu hình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.