2010-10-11 20 views
5

Tôi có hệ thống tích hợp liên tục tạo RPM thông qua một tập lệnh shell được kích hoạt bởi cron. Tôi muốn ký RPM với gpg, nhưng gpg khăng khăng người dùng nhập mật khẩu bằng tay vào bảng điều khiển, điều này rõ ràng là không khởi động vì không có bảng điều khiển người dùng cho cron.Sử dụng gpg để ký RPM dưới dạng một phần của bản dựng liên tục - làm cách nào để tránh lời nhắc cho cụm mật khẩu?

Tôi đã đọc về gpg-agent sẽ cho phép bạn nhập cụm mật khẩu một lần cho phiên đăng nhập hiện tại, nhưng một lần nữa cron không có phiên đăng nhập. Những gì tôi muốn là để có thể cấu hình gpg-agent để chấp nhận mật khẩu một lần tại thời gian khởi động và bàn tay đó để phiên cron khi cần thiết. Tôi không có ý tưởng nếu điều này là có thể hay không, và các tài liệu cho gpg-đại lý là khá tối thiểu.

Cách khác là sử dụng kỳ vọng nhập cụm mật khẩu khi gpg yêu cầu, nhưng rõ ràng đây là lỗ hổng bảo mật lớn vì cụm mật khẩu sẽ cần được bao gồm trong tập lệnh xây dựng.

Trả lời

5

Bạn nên bắt đầu gpg-agent khi khởi động và lưu biến môi trường GPG_AGENT_INFO. Sau đó, bạn có thể thiết lập nó trong môi trường kịch bản của bạn và sẽ làm việc như mong đợi. Ngoài ra, hãy đảm bảo quyền của socket trong GPG_AGENT_INFO cho phép kịch bản của bạn đọc nó.

+0

Cảm ơn, đó chính xác là những gì tôi đang tìm kiếm. Nhưng làm thế nào để bạn truy vấn hoặc thiết lập các điều khoản trên một socket? –

+0

Bạn đặt quyền như bình thường (được gọi trên đường dẫn trong GPG_AGENT_INFO). Sau đó, nếu biến môi trường được đặt, gpg sẽ sử dụng biến đó mà không có hành động nào khác bên cạnh bạn. Lưu ý rằng tôi đã không thử trường hợp này, vì vậy hãy xem nó có hoạt động không;) – smola

-1

Bất kỳ công cụ xây dựng nào bạn sử dụng để tạo RPM có thể có khả năng ký nó. Ví dụ, gradle có một plugin để ký cho bạn. Bạn phải tạo một tệp thuộc tính với id, cụm mật khẩu và vị trí của tệp vòng khóa và phần còn lại.

Xem: https://docs.gradle.org/current/userguide/signing_plugin.html

+1

Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (// meta.stackoverflow.com/q/8259) để bao gồm các phần của câu trả lời ở đây và cung cấp liên kết để tham khảo. –

Các vấn đề liên quan