it-swarm-ko.tech

apt-get 업데이트 후 KEYEXPIRED 오류 메시지가 표시되면 어떻게해야합니까?

데비안 기반 시스템에서 패키지를 업데이트하는 동안

Sudo apt-get update

오류 메시지가 나타납니다.

Reading package lists... Done
W: GPG error: ftp://ftp.fr.debian.org stable/non-US Release: 
The following signatures were invalid: KEYEXPIRED 1138684904

이 문제를 해결하려면 어떻게해야합니까?

74
paulgreg

SecureAPT에 관한 데비안 위키 에서 /etc/apt/sources.list에서 non-us를 포함하는 행을 제거해야한다는 것을 알았습니다.

나는 실제로 그렇게했고 효과가있었습니다.

1
paulgreg

만료 된 리포지토리 키와 해당 ID를 찾으려면 다음과 같이 apt-key를 사용하십시오.

LANG=C apt-key list | grep expired

다음과 유사한 결과가 나타납니다.

pub   4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]

키 ID는 / 뒤의 비트입니다 (이 경우 BE1DB1F1).

키를 업데이트하려면 다음을 실행하십시오.

Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1

참고 : 패키지 관리자가 아직 새 키를 업로드하지 않은 경우 키를 업데이트하면 분명히 not 작동하지 않습니다. 이 경우 관리자에게 연락하거나 배포판에 버그를 신고하는 것 외에는 할 수있는 일이 거의 없습니다.

만료 된 모든 키를 업데이트하는 하나의 라이너 : (@ryanpcmcquen 덕분에)

for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
118
kynan

새로운 키를 가져 와서 추가해야합니다.이 시점에서 apt는 감지하고 불평하지 않습니다. 이것은 일반적으로 발생하지 않지만 때때로 발생합니다. 실제로 필요한 것은 추가해야 할 키의 16 진 코드를 아는 것입니다. 일단 당신이 그것을 가지고, 그것은 거기에서 거의 내리막입니다.

몇 가지 예 :

6
Avery Payne

비슷한 오류가 있었지만 시스템 시간에 문제가있었습니다. 년은 1961 년이었다 :)

시스템 날짜/시간을 수정 한 후 전문가없이 업데이트 할 수 있습니다.

2
slava

날짜가 정확하지 않은 경우에도 발생할 수 있습니다.

와 날짜를 확인

date

잘못 구성된 경우 다음을 수행하여 시간대 및 날짜 자동 동기화를 설정하십시오.

apt-get install ntp ntpdate && service ntp stop
dpkg-reconfigure tzdata
ntpdate-debian
service ntp start
1
Aley

이 오류의 발생 가능성은 적지 만 때로는 가능한 한 가지 이유는 다른 만료 날짜로 동일한 키를 두 번 추가 한 경우입니다. 이 답변이 귀하와 관련이 있으려면 그렇게했을 것입니다.

나 자신의 키로 자신의 저장소를 호스팅 할 때와 마찬가지로 이런 일이 발생할 수 있습니다. 키가 만료 되려고 할 때 단순히 키 대신 수명을 연장하고 미리 설정을 사용하여 원본 키를 설치했지만 deb 패키지를 사용하여 업데이트 된 키를 설치 한 경우 이전 키는 /etc/apt/trusted.gpg, 새 파일은 /etc/apt/trusted.gpg.d/에 별도의 파일로 표시됩니다. 이전 키는 새 키를 숨기며 apt-key에서는 완전히 무시합니다. gpg --keyring /etc/trusted.gpg --delete-keys <keyid>를 실행하여 이전 키를 제거하면 새 키가 감지됩니다.

이것은 약간의 비표준 코너 구성이지만, 내가 한 것과 같은 이유로 다른 사람 이이 문제를 겪을 경우 내 대답이 혼란을 덜 수 있기를 바랍니다.

1
sampi

더 간단한 oneliner :

for key in $(Sudo apt-key list | awk -v FS='[ /:]+' '/expire[sd]/ {print $3}'); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $key; done

cut을 두 번 이상 사용하는 것과 같은 일을하는 경우 더 좋은 도구가 있다고 생각합니다. (또한 다른 질문 을 기반으로 이것을 만들었습니다.)

1
Bruno Bronosky

당신은 해야한다 아무것도하지 않습니다. 경고 일뿐입니다. W: 접두사.

0
Michael Franzl