Các bước cần thiết để lưu trữ cụm mật khẩu được nhập qua pinentry bằng cách sử dụng cụm từ gpg-preset-mật khẩu trong 2.1.15?


8

Tôi đang tìm cách lưu cụm mật khẩu để sử dụng trên một máy không giám sát. Khi thực hiện điều này có một số rủi ro, tôi muốn chọn cụm mật khẩu nào được lưu trong bộ nhớ cache và tránh đặt cả hai default-cache-ttlmax-cache-ttlcác giá trị cao đáng ghét cũng như tránh phải xóa gpg-agenttoàn bộ bộ đệm theo định kỳ - do đó tôi đang tìm giải pháp gpg-preset-passphrase. Một số thông tin tôi tìm thấy trong khi khắc phục sự cố đề cập đến các phiên bản cũ hơn của GnuPG vì vậy tôi không chắc mình có đủ tài khoản cho tất cả các khác biệt hay không.

Đầu tiên, theo quy định man 1 gpg-agent, tôi có export GPG_TTY=$(tty)trong .bashrc của mình.

Bây giờ, giả sử tôi chạy eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)để bắt đầu gpg-agent, lưu ý rằng gpg-preset-passph khẩu vẫn vinh danh --max-cache-ttl (mặc định 2 giờ).

Sau đó tôi nhận được keygrip $KEYGRIPcủa khóa con bí mật mong muốn với gpg --with-keygrip -K.

Với điều đó tôi cố gắng /path/to/gpg-preset-passphrase -c $KEYGRIP. Khi quay trở lại, bản in này:

   gpg-preset-passphrase: caching passphrase failed: Not implemented

Cố gắng một lần nữa thêm --verbose --debug 6 --log-file /path/to/gpg-agent.logvào gpg-agent, đăng nhập của tôi được nối với

   gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent
   gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started
   gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started
   gpg-agent[4207] command PRESET_PASSPHRASE failed: Not implemented
   gpg-agent[4207] handler 0x7f86ef783700 for fd 5 terminated

Tôi không chắc chắn nên tiến hành từ đâu ngoài việc lặn sâu hơn vào nguồn, vì vậy tôi tự hỏi liệu trước tiên có ai có thể sửa các bước tôi đang thực hiện không.


Bạn đã bao giờ giải quyết điều này?
AlMehdi

Tôi chắc chắn rằng cụm mật khẩu phải được gửi đến stdin của gpg-preset-passphrase, dẫn đầu cụ thể đầu tiên của tôi về điều đó là từ danh sách gửi thư này.gnupg.org/pipermail/gnupg
users/2010

Làm thế nào để gửi nó từ stdin, thay vì echo? điều này không có vẻ an toàn chút nào
holms 26/03/18

Câu trả lời:



0

Có vẻ như bạn muốn gửi cụm mật khẩu đến gpg-preset-passphrasehơn stdin, mà không lặp lại nó (để tránh lộ nó trong danh sách quy trình):

/path/to/gpg-preset-passphrase -c $KEYGRIP <<< $PASSPHRASE

Nếu bạn quan tâm đến tính di động bên ngoài bash:

/path/to/gpg-preset-passphrase -c $KEYGRIP <<EOF
$PASSPHRASE
EOF

Câu trả lời này về cú pháp "Tài liệu ở đây" (EOF) là vô giá đối với tôi: https://unix.stackexchange.com/a/88492

Bạn cũng cần allow-preset-passphrasetrong của bạn ~/.gnupg/gpg-agent.confnhư được đề cập bởi holms.

Nếu bạn đang tìm cách thực hiện điều này bằng mã hóa đối xứng (vì tôi đã mất đi sự tỉnh táo của mình với điều này, có lẽ bạn sẽ không phải làm vậy), hãy xem câu trả lời của tôi ở đây để tìm kiếm keygrip / cacheid phù hợp để sử dụng để đặt trước cụm mật khẩu trong gpg- đại lý: https://superuser.com/a/1485486/1093343

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.