2010-10-11 6 views
5

Mam system budowania ciągłej integracji, który generuje RPM za pomocą skryptu powłoki uruchamianego przez cron. Chcę podpisać RPM za pomocą gpg, ale gpg nalega, aby użytkownik ręcznie wprowadził hasło na konsoli, co oczywiście nie jest uruchomione, ponieważ nie ma konsoli użytkownika dla crona.Używanie gpg do podpisywania RPM jako części ciągłej kompilacji - jak uniknąć monitu o hasło?

Przeczytałem o gpg-agencie, który pozwoli Ci wprowadzić hasło raz dla bieżącej sesji logowania, ale znowu cron nie ma sesji logowania. Chciałbym móc skonfigurować gpg-agent tak, aby raz przy uruchomieniu był w stanie zaakceptować hasło i przekazać je do sesji cron w razie potrzeby. Nie mam pojęcia, czy to możliwe, czy nie, a dokumenty dla gpg-agent są dość minimalne.

Alternatywą byłoby użycie oczekiwać wprowadzenia hasła, gdy gpg pyta o niego, ale wyraźnie jest to duża luka w zabezpieczeniach, ponieważ hasło musi być zawarte w skrypcie budowania.

Odpowiedz

5

Powinieneś uruchomić gpg-agent przy uruchomieniu i zapisać zmienną środowiskową GPG_AGENT_INFO. Następnie możesz skonfigurować go w środowisku skryptu i działać zgodnie z oczekiwaniami. Dodatkowo upewnij się, że uprawnienia do gniazda w GPG_AGENT_INFO pozwalają skryptowi go odczytać.

+0

Dzięki, że jest dokładnie to, czego szukam. Ale w jaki sposób można zapytać lub ustawić uprawnienia do gniazda? –

+0

Ustawiasz uprawnienia jak zwykle (chown na ścieżce w GPG_AGENT_INFO). Następnie, jeśli ustawiona jest zmienna środowiskowa, gpg powinna jej używać bez żadnych akcji po twojej stronie. Zauważ, że nie wypróbowałem tej sprawy, więc zobaczmy, czy to działa;) – smola

-1

Niezależnie od narzędzia do kompilacji używanego do generowania RPM, może istnieć możliwość jego podpisania. Na przykład gradle ma wtyczkę, która podpisuje za Ciebie. Musisz utworzyć plik właściwości z identyfikatorem, hasłem i lokalizacją pliku kluczy, a on zajmie się resztą.

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

+1

Chociaż może to teoretycznie odpowiedzieć na pytanie, [byłoby lepiej] (// meta.stackoverflow.com/q/8259), aby uwzględnić niezbędne część odpowiedzi tutaj, i podać link dla odniesienia. –

Powiązane problemy