Làm thế nào để có một cụm mật khẩu khác nhau cho một khóa con gpg?


16

Tôi cần tự động hóa một quy trình triển khai và công cụ sẽ tự động ký vào các tạo phẩm phát hành. Vòng chìa khóa của tôi có một khóa chính mà tôi chỉ sử dụng để tạo khóa con và hai khóa con. Một khóa con để ký và một mã hóa.

Hiện tại có một cụm từ duy nhất cho tất cả các phím. Tôi không muốn chỉ định cụm mật khẩu này trong tệp cấu hình vì điều đó cũng sẽ gây rủi ro cho khóa chính.

Vì vậy, tôi nghĩ rằng tôi đã đặt một cụm từ khác cho khóa con bằng cách thực hiện:

$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save

Nhưng điều này đã thay đổi cụm từ thông qua cho các khóa khác là tốt.

Làm cách nào tôi có thể đặt cụm mật khẩu riêng cho các khóa riêng lẻ?

Câu trả lời:


14

Không thể thiết lập cụm mật khẩu riêng cho các khóa con với GnuPG. Nhưng có một cách giải quyết, thậm chí trông giống như ý tưởng thực hành tốt trong trường hợp này:

  1. Xuất khóa con của sự lựa chọn (trong ví dụ, khóa con có ID 0xDEADBEEF). Đừng quên dấu chấm than, nó đảm bảo GnuPG thực sự hoạt động với chính khóa con chứ không phải với khóa chính mà nó thuộc về!

    gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
    

    Khóa con sẽ có khóa chính chung và "khóa chính" riêng được đính kèm, nhưng không phải là khóa chính riêng.

  2. Nhập khóa con vào thư mục chính GnuPG khác. Ví dụ hy vọng bạn đang ở trong thư mục gốc của dự án và có một thư mục etccho những thứ như khóa này trong đó.

    gpg --homedir ./etc/gnupg --import subkeys.pgp
    
  3. Thay đổi cụm mật khẩu của khóa con được tách.

    gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
    
  4. Thay vì sử dụng khóa "bình thường" của bạn, hãy luôn tham khảo thư mục GnuPG riêng như đã đề cập ở trên.

Thay vào đó, bạn có thể muốn xem xét việc tạo khóa dự án mà bạn ký bằng khóa riêng của mình. Điều này có thể có lợi thế là những người đóng góp / người dùng khác cũng có thể ký khóa (và do đó xác nhận rằng đây thực sự là khóa được sử dụng cho dự án) và việc bàn giao dự án có thể dễ dàng hơn trong trường hợp người khác sẽ bảo trì.


1
Điều này không hoạt động với GnuPG 2.2.4. Nó không nói "Cần chìa khóa bí mật để làm điều này." Rất buồn: '(
steinybot

Vì vậy, tôi cần phải sử dụng các khóa gpg không mật khẩu để đăng nhập repo tự động?
SuperSandro2000

Không, bạn cũng có thể lưu trước bộ đệm mật khẩu bằng cách sử dụng gpg-agent. Có một cái nhìn vào gpg-preset-passphrase.
Jens Erat

5

Một kho lưu trữ thư gnupg.org rất lỗi thời (2013) giải thích một cách giải quyết vụng về để tạo một mật khẩu riêng cho một khóa con .
Nó ngụ ý ràng buộc không nằm trong cấu trúc dữ liệu của bộ khóa (tức là nhóm khóa con chính) mà chỉ trong giao diện phần mềm để xây dựng và sửa đổi bộ khóa.

Một trích dẫn từ tài liệu tham khảo:

Chào,

có thể có khóa chính và một số khóa con với các khóa con có cụm mật khẩu (ví dụ ngắn hơn) so với khóa chính không?

Những gì bạn có thể đang tìm kiếm là một khóa chính ngoại tuyến (xem - exex-secret- subkey). Nhưng câu trả lời là: có. gpg-agent không quan tâm đến việc kết nối các phím. Nó yêu cầu bạn thậm chí cho cùng một cụm mật khẩu nhiều lần (đối với các thành phần khác nhau của cùng một khóa).

Nhưng GnuPG không hỗ trợ điều này trực tiếp.

1) Xuất khóa bí mật (--export-secret-key without --armor)

2) thay đổi cụm mật khẩu

3) Xuất lại (tất nhiên là một tệp khác)

4) Sử dụng gpgsplit trên cả hai tệp (trong các thư mục khác nhau). Kết quả trông như thế này:

000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig

5) Bây giờ bạn trộn các thành phần của hai nhóm: mkdir kết hợp mv a / 000001 * a / 000002 * a / 000003 * kết hợp / mv b / 000004 * b / 000005 * kết hợp / cd kết hợp / cat *> differ_passph cụm.gpg

6) Xóa khóa khỏi chế độ ẩn: --delete-secret-key

7) Nhập cái mới: gpg - nhập khẩu khác_passph cụm.gpg

Hauke ​​Laging

Cá nhân tôi chưa xác nhận thao tác này - chỉ báo cáo những gì tôi đã đọc.

Việc thiếu thông số kỹ thuật và thảo luận trong tài liệu GnuPG liên quan đến chủ đề quan trọng này là đáng thất vọng.

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.