추가 읽기

추가 읽기

나는 출판한다데비안 저장소. 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 버전과 계속 상호 운용됩니다.

추가 읽기

답변2

JdeBP가 지적했듯이 Debian 9부터 apt는 더 이상 SHA-1을 지원하지 않습니다. 즉, InReleaseSHA-256을 사용하여 파일을 생성해야 합니다(동일 적용 Release.pg).

이 문제를 해결하는 방법은 -digest-algo SHA256gpg에 대한 매개변수로 지정하는 것이었습니다. 따라서 전체 시퀀스는 다음과 같습니다.

  1. 패키지 생성:

    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}
    
  2. 서명:

    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

관련 정보