apt의 gpg 서명 확인을 무시 / 무시하는 방법은 무엇입니까?


47

내가 방문한 모든 키 서버가 시간 초과되었습니다. 공개 키의 서명을 확인하지 않고 패키지를 설치해야합니다. 모든 서명 확인을 우회하거나 모든 서명 오류를 무시하거나 서명이 통과되었다고 생각하는 바보가 있습니까?

나는 이것을하는 것이 위험하다는 것을 잘 알고 있습니다.


1
일반적으로 리포지토리를 추가 할 때 키를 로컬에 동시에 설치하면 키 서버에 액세스해야하는 이유는 무엇입니까?
JanC

답변:


68

다음 과 같이 --allow-unauthenticated옵션을 전달하십시오 apt-get.

sudo apt-get --allow-unauthenticated upgrade

의 매뉴얼 페이지에서 apt-get:

--allow-unauthenticated
패키지를 인증 할 수없고 메시지를 표시하지 않으면 무시합니다. pbuilder와 같은 도구에 유용합니다. 구성 항목 : APT :: Get :: AllowUnauthenticated.

/etc/apt/apt.conf.d/dir 에서 자신의 구성 파일을 사용하여이 설정을 영구적으로 만들 수 있습니다 . 파일 이름은 99myown다음 줄을 포함 할 수 있습니다.

APT::Get::AllowUnauthenticated "true";

이런 방식으로 소프트웨어를 설치할 때마다 옵션을 사용할 필요가 없습니다. 참고 :이 옵션은 기본적으로 설정하지 않는 것이 좋습니다.이 방법은 공격자가 컴퓨터를 손상시킬 수있는 서명 확인을 무시합니다.


4
정보의 경우 : apt-get일반 apt명령 에서는 작동 하지만 일반 명령 에서는 작동 하지 않습니다 .
Tor Klingberg

2
우분투 16.0 LTS. 이것은 작동하지 않습니다 / 아무것도 영향을 미치지 않습니다
wvxvw

7

키를 패키징 한 리포지토리에서 패키지를 가져오고 리포지토리에 패키지를 포함 시키거나 다른 곳에 포함시키지 않으려는 경우 dpkg를 사용하여 키 / 키링 패키지를 다운로드하여 설치하는 것은 매우 성 가실 수 있습니다. 쉽게 스크립트하고 반복 가능한 방식으로.

키 서버에서 키를 설치하거나 https를 통해 신뢰할 수있는 소스에서 키를 다운로드 할 수있는 경우 아래 스크립트는 권장되지 않지만 다른 방법이 없으면이 스크립트를 사용할 수 있습니다.

echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list

sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

## If you ever run `sudo apt-key del your-repos-keyID`
## you may have to `sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed

apt-get update
apt-get install somepkg-from-repo

나는 sur5r repo의 i3이 이것을 수행하기 때문에 원래 이것을 합쳤습니다. 그러나 키가 keyserver.ubuntu.com 목록에 있음을 알았으므로 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6모든 여분의 패키지 번거 로움을 피할 수 있습니다 .


i3 문제로 인해 여기에 왔습니다- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6해결되었습니다! 고마워요!
Benedikt Köppel

6

어쩌면 /etc/apt/apt.conf 파일을 만들고 (만들면 읽을 수 있음)이 코드를 삽입 할 수 있습니다.

APT{Ignore {"gpg-pubkey"; }};

5
그것은 나를 위해 작동하지 않습니다. 내가 추가 때 작동합니다APT { Get { AllowUnauthenticated "1"; }; };
PHP - 코더

우분투 16.0 LTS : apt-get이하는 일에 영향을 미치지 않습니다.
wvxvw

1

/etc/apt/apt.conf.d/99allow_unauth이 컨텐츠로 작성하십시오 .

APT { Get { AllowUnauthenticated "1"; }; };

php-coder의견에 감사드립니다 .


0

오래된 데비안 서버에서도 같은 문제가 발생했습니다. 나는 이벤트를 만들 수 없습니다

apt-get update

그 결과 다음과 같은 오류가 발생했습니다.

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

마지막으로 해결책은 이것을 추가하는 것이 었습니다.

Acquire::Check-Valid-Until false;

/etc/apt/apt.conf에 (없는 경우 작성) 그 후 오류는 간단한 경고가되었습니다.

우분투에서도 작동 할 수 있다고 생각합니다.

완전히 안전하지 않습니다.


그것이 안전하지 않은 경우에는 게시하지 않는 것이 좋습니다.
Yufenyuy Veyeh Dider

이렇게하는 가장 안전한 방법은 배포판을 업그레이드하는 것입니다. 일부 복잡한 고객의 경우 업그레이드 할 방법이 없습니다. 그리고 모든 질문은이 면책 조항으로 시작되었으므로 '이것이 위험하다는 것을 잘 알고 있습니다'라고 저의 기여가 적절하다고 생각했습니다. 그렇지 않은 경우 제거 할 수 있습니다.
Gnusam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.