/ GPG, SIGNING

GPG 서명 관련 팁들 모음

저장되어 있는 키 목록 출력

gpg --list-keys 명령어를 사용하면 저장되어 있는 공개 키의 목록을 출력합니다.

$ gpg --list-keys
/Users/taeho/.gnupg/pubring.kbx
-------------------------------
pub   rsa4096 2014-07-01 [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid           [ unknown] Taeho Kim <[email protected]>
sub   rsa4096 2014-07-01 [E]

키 id를 함께 보고 싶다면 --keyid-format 옵션을 추가하면 됩니다.

$ gpg --list-keys --keyid-format LONG
/Users/taeho/.gnupg/pubring.kbx
-------------------------------
pub   rsa4096/[KEYID] 2014-07-01 [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid           [ unknown] Taeho Kim <[email protected]>
sub   rsa4096 2014-07-01 [E]

비밀 키 목록을 출력하고 싶다면 --list-secret-keys 옵션을 사용합니다.

$ gpg --list-secret-keys
/Users/taeho/.gnupg/pubring.kbx
-------------------------------
sec   rsa4096 2014-07-01 [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid           [ unknown] Taeho Kim <[email protected]>
ssb   rsa4096 2014-07-01 [E]

키 비밀번호 변경

키 비밀번호를 변경하려면 먼저 키 편집 모드로 진입해야 합니다.

키 편집 모드는 gpg --edit-key [키 ID]로 진입할 수 있습니다. 만약 키 ID가 ABCD0123 이라면 gpg --edit-key ABCD0123 을 입력하면 됩니다.

키 편집 모드에 진입한 후 passwd 명령어를 사용하면 비밀번호를 변경할 수 있습니다.

gpg> passwd

비밀번호 변경이 완료되었다면 save 명령어를 사용하여 변경 내용을 저장합니다.

gpg > save

공개 키 배포

내 비밀키로 서명한 파일을 다른 사람이 검증하기 위해, 내 공개키를 배포해야 합니다.

공개키는 --keyserver--send-keys 옵션을 사용하여 배포할 수 있습니다.

$ gpg --keyserver hkp://pool.sks-keyservers.net --send-keys [키 ID]

만약 gpg: keyserver send failed: No route to host와 같은 메시지가 표시되며 키 배포에 실패할 경우, 다음과 같이 키 서버의 주소를 바꾸어 시도하면 됩니다.

$ gpg --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --send-keys [키 ID]

참고

Git에서 GPG 키 서명이 실패하는 경우

gpg 버전 2 이상을 사용하면서 Git에서 GPG 서명을 시도할 때 다음과 같은 에러 메시지가 표시된다면,

error: gpg failed to sign the data
fatal: failed to write commit object

시스템 환경 변수에 다음 내용을 추가하면 됩니다.

GPG_TTY=$(tty)

참고

산출물 서명시 오류가 발생하는 경우

Gradle 빌드 툴을 사용하여 라이브러리 산출물을 서명할 때 다음과 같은 오류가 발생한다면,

Could not evaluate onlyIf predicate for task ':firebase-auth:signArchives'.
> Unable to read secret key from file: /Users/taeho/.gradle/secret.asc (it may not be a PGP secret key ring)

비밀 키를 secring.gpg 형식으로 다시 추출해야 합니다.

GPG 2.1 이상을 사용하는 환경이 해당되며, gpg --export-secret-keys -o secring.gpg 명령어를 사용하면 됩니다.

참고

kunny

커니

안드로이드와 오픈소스, 코틀린(Kotlin)에 관심이 많습니다. 한국 GDG 안드로이드 운영자 및 GDE 안드로이드로 활동했으며, 현재 구글에서 애드몹 기술 지원을 담당하고 있습니다.

Read More