Pomiń sygnaturę GPG sprawdza tylko jedno repozytorium

34

Przeczytałem następujący artykuł: Jak ominąć / zignorować sprawdzanie podpisu gpg przez apt?

To przedstawia jak skonfigurować apt, aby nie sprawdzać podpisy pakietów w ogóle .

Chciałbym jednak ograniczyć efekt tego ustawienia do pojedynczego repozytorium (w tym przypadku hostowanego lokalnie).

To znaczy: wszystkie oficjalne repozytoria powinny używać sprawdzanie podpisu GPG jak zwykle, z wyjątkiem dla lokalnego repo .

Jak miałbym to zrobić?

W przeciwnym razie, jaka byłaby zaleta (ze względów bezpieczeństwa) podpisania pakietów podczas automatycznej kompilacji (niektóre meta-pakiety i kilka programów), a następnie zrobienie wszystkiego, co jest bezpieczneapt ? W końcu host z repozytorium byłby również tym, na którym rezyduje tajny klucz GPG.

0xC0000022L
źródło
Moim zdaniem automatyczne podpisywanie przy użyciu klucza online, choć dalekie od ideału, byłoby zdecydowanie lepsze niż całkowite nie podpisywanie. Byłoby to również znacznie łatwiejsze do skonfigurowania (nie trzeba konfigurować każdego klienta, aby zrezygnować z kontroli) i znacznie łatwiej jest przejść do lepszej konfiguracji później, jeśli chcesz.
Celada,
@Celada: czy to opinia (że jest „zdecydowanie lepsza”), czy może jest uzasadnienie dla twojego oświadczenia? Pytam, ponieważ do tej pory nie widzę powodu, dla którego poprawiłoby to bezpieczeństwo lub jakikolwiek inny aspekt. Jedynym momentem, w którym byłoby to nieco korzystne, byłoby, gdyby w końcu zamierzałem opublikować moje repo, nie?
0xC0000022L
Racjonalnie podtrzymuję tę opinię :-) Jeśli repozytorium jest podpisane, to przynajmniej źli ludzie muszą zdobyć klucz do podpisywania, który prawdopodobnie będziesz trzymał tylko w jednym miejscu i prawdopodobnie na polu deweloperskim lub przynajmniej nieczytelnym dla Serwer HTTP. W przeciwnym razie nie będzie żadnej ochrony. Innymi słowy, chcę powiedzieć, że podpisanie nie ma wady, więc równie dobrze możesz podpisać, nawet jeśli przewaga jest niewielka. A ponieważ łatwiej byłoby skonfigurować, to właśnie z tym bym poszedł.
Celada,
@Celada: jest to repozytorium tylko do użytku lokalnego. Kto będzie mógł uzyskać do niego dostęp. Przypadek użycia: host z kontenerami gości. Zarówno host, jak i kontenery będą miały dostęp. Brak publicznego dostępu. Ale myślę, że wytrzymam trochę dłużej i wybiorę nieuniknione inaczej (podpisanie).
0xC0000022L
W porządku, zobaczymy, czy ktoś zna odpowiedź na twoje pytanie. Nie wiem, jakiego narzędzia zamierzasz użyć do wygenerowania repozytorium, ale polecam reprezentpro . Wiele innych narzędzi, takich jak dput(lub cokolwiek, z czego korzysta sam Debian), jest bardzo skomplikowanych i wydaje się ogromną nadwyżką w przypadku repozytorium ad hoc tylko na poziomie lokalnym. repreproautomatycznie zajmie się generowaniem repozytorium ze wszystkimi poprawnymi układami katalogów i plikami indeksowymi bez konieczności instalowania dużego serwera bazy danych ... a także podpisze wynik, praktycznie bez dodatkowej pracy z twojej strony.
Celada

Odpowiedzi:

48

Możesz ustawić opcje w sources.list:

deb [trusted=yes] http://localmachine/debian wheezy main

Ta trustedopcja wyłącza sprawdzanie GPG. Zobacz man 5 sources.listszczegóły.

Uwaga: zostało to dodane w apt 0.8.16 ~ exp3. Więc jest w wheezy (i oczywiście jessie), ale nie ściska.

derobert
źródło
wielkie dzięki. Właśnie tego szukałem. Ufam 1.0.1ubuntu2.7, że będzie już miał tę funkcję, biorąc pod uwagę jej numer wersji.
0xC0000022L
@ 0xC0000022L tak, powinno.
derobert
Jest to zdecydowanie najlepsza odpowiedź, jeśli wielokrotnie chcesz uzyskać dostęp do niepodpisanego repozytorium, istnieją zaktualizowane odpowiedzi na inne pytanie połączone w pierwotnym pytaniu tutaj, pokazujące, jak tymczasowo zrobić to dla repozytorium.
dragon788
11

Aby mieć pewność, że zobaczysz ostrzeżenie podczas korzystania z niezabezpieczonego repozytorium, lepiej użyj parametru allow-insecure = yes zamiast jak poniżej

deb [ allow-insecure=yes ] ...
Naresh Mehta
źródło
Ciekawe, dziękuję za odpowiedź. Rzeczywiście niewielka, ale ważna różnica.
0xC0000022L