나는 출판한다데비안 저장소. 4096비트 GPG 키를 사용하여 서명되었으며 한동안 Debian 7 및 Debian 8 시스템에서 잘 사용되었습니다. 최근에 내 사용자 중 한 명이 Debian 9에 문제가 있다고 보고했습니다. 구체적으로 apt-get update
산출량은 다음과 같습니다.
패키지 목록을 읽는 중... 완료 여: GPG 오류:http://Debian-repository.JdeBP.info. stable InRelease: 다음 서명이 유효하지 않습니다: A71733F3CEBD655CB25A0DDCE1E3A497555CE68F W: 저장소'http://Debian-repository.JdeBP.info. stable InRelease'가 서명되지 않았습니다.
"와 함께 주의하시기 바랍니다.Repo APT 보안 - apt-get 업데이트 GPG 서명이 유효하지 않습니다." 그리고"적절한 GPG 서명에 좌절함" 그래요아니요사용 aptly
. aptly
어떤 종류의 오류도 겪고 있지 않다는 것이 분명합니다 . (-:
그렇다면 문제는 무엇입니까?
답변1
문제의 원인은 데비안 위키나 기타 유사한 문서가 업데이트되지 않고 거의 몇 가지 주요 업데이트만 있기 때문입니다.우분투-데비안 이외의 관련 발표개인의WWW 사이트는 Debian 9부터 APT에서 SHA-1 암호화 기본 설정 키에 대한 지원이 꺼졌다는 것을 보여줍니다. (구체적으로 APT 버전 1.4~beta1에서는 꺼지고, Debian 9 버전은 1.4.7이다.)
따라서 저장소 게시자는 다음 두 가지 작업을 수행해야 합니다.
- GPG 기본 설정에서 SHA-1을 제거하려면 조정 하세요
personal-digest-preferences
. 이렇게 하면 새 키로 인해 문제가 반복되는 것을 방지할 수 있습니다.personal-cipher-preferences
$HOME/.gnupg/gpg.conf
- 환경설정 조정현재 저장소 서명 키에 포함되어 있습니다.거기에서도 SHA-1을 제거하십시오. 이렇게 하려면 다음이 필요합니다.
- 달리기
gpg --edit-key "${key_fingerprint}"
적절한 키 지문을 교체한 다음pref
및 명령을 사용하여 키 기본 설정을 편집한setpref
다음 키를 키링에 저장합니다. - 업데이트된 키의 공개 키를 키링에서 파일로 내보냅니다.
- 수정된 서명 키를 사용하여 저장소에 다시 서명합니다.
- 업데이트된 서명 키에 대한 공개 키 파일을 게시합니다.
- 달리기
새 서명 키를 생성할 필요가 없으며 SHA-1을 제거하는 업데이트된 키는 이전 Debian 8 APT 버전과 계속 상호 운용됩니다.
추가 읽기
- 줄리안 안드레스 클로드(2016-03-14).APT에서 SHA-1 지원 중단. jak-linux.org.
- 줄리안 안드레스 클로드(2016-03-15).APT + SHA1에 관한 설명 및 업데이트. jak-linux.org.
답변2
JdeBP가 지적했듯이 Debian 9부터 apt는 더 이상 SHA-1을 지원하지 않습니다. 즉, InRelease
SHA-256을 사용하여 파일을 생성해야 합니다(동일 적용 Release.pg
).
이 문제를 해결하는 방법은 -digest-algo SHA256
gpg에 대한 매개변수로 지정하는 것이었습니다. 따라서 전체 시퀀스는 다음과 같습니다.
패키지 생성:
dpkg-deb --build ${PACKAGE_NAME}-1.0/ sudo rm ${SOME_TEMP_PATH}/* mv ${PACKAGE_NAME_name}-1.0.deb ${SOME_TEMP_PATH}/ dpkg-scanpackages ${SOME_TEMP_PATH} /dev/null | gzip -9c > ${SOME_TEMP_PATH}/Packages.gz sudo rm ${PATH_TO_REPO_IN_WWW_SERVER}/* sudo cp ${SOME_TEMP_PATH}/* ${PATH_TO_REPO_IN_WWW_SERVER} cd ${PATH_TO_REPO_IN_WWW_SERVER}
서명:
apt-ftparchive --md5 --sha256 release . > Release gpg --digest-algo SHA256 --armor --output Release.gpg --detach-sign Release gpg --digest-algo SHA256 --clearsign --output InRelease Release
임시 폴더에서 서명을 완료한 다음 전체 내용을 웹 서버 폴더에 복사할 수도 있습니다. 또는 s를 별도의 트리에 저장 하려는 경우 .
호출할 때 경로(예: "") 를 사용할 수도 있습니다. .apt-ftparchive
.deb