gpg2에 문제가 있고 git에서 커밋에 서명하는 데 문제가 있습니다. 재부팅하기 전에 어제 이 모든 것이 작동했다는 점을 먼저 말씀드리고 싶습니다 apt-get update && apt-get upgrade
.
이제 커밋에 서명하려고 하면 다음과 같은 오류 메시지가 나타납니다.
gpg: skipped "3C27FEA3B5758D9E": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
사실, 변경 사항을 숨기려고 하면 나도 알아차리는 것 같습니다.
pgrep을 실행하니 gpg-agent가 실행되는 것을 볼 수 있어서 종료하고 다시 시작했습니다.
내 파일에도 이 내용이 있습니다 .bashrc
.
export GPG_TTY=$(tty)
출력 gpg2 --list-keys /home/mdhas/.gnupg/pubring.gpg
:
------------------------------
pub rsa2048/FBJJJJ1C 2017-10-11 [SC]
uid [ultimate] Mark Dhas <[email protected]>
sub rsa2048/3FDJJJJJ 2017-10-11 [E]
pub rsa2048/BFJJJJJ7 2017-11-17 [SC]
uid [ultimate] Mark Dhas <[email protected]>
sub rsa2048/DEDDJJJJ 2017-11-17 [E]
pub rsa4096/7137JJJJ 2017-10-11 [SC] [expires: 2021-10-11]
uid [ unknown] co.co <[email protected]>
sub rsa4096/A9BJJJJJ 2017-10-11 [E] [expires: 2021-10-11]
pub rsa4096/B57JJJJJ 2018-10-31 [SC] [expires: 2021-10-31]
uid [ unknown] Mark Dhas (New Key-Created on 2018-10-31) <[email protected]>
sub rsa4096/36FJJJJJ 2018-10-31 [E] [expires: 2021-10-31]
JJJJJ는 무시하세요. 보안을 위해 시도된 사소한 편집입니다.
$ gpg2 --list-secret-keys
/home/mdhas/.gnupg/pubring.gpg
------------------------------
sec rsa2048/FBJJJJ1C 2017-10-11 [SC]
uid [ultimate] Mark Dhas <[email protected]>
ssb rsa2048/3FDJJJJJ 2017-10-11 [E]
이것은 내 자식 구성의 일부입니다.
user.name=Mark Dhas
[email protected]
user.signingkey=3C2JJJJJJJJJJJJJ
core.editor=vim
gpg.program=/usr/bin/gpg2
이 문제를 해결하는 방법에 대한 아이디어가 있으면 좋을 것입니다.
답변1
GPG 키의 비공개 부분이 없습니다. GPG 키는 공개 키(다른 컴퓨터가 귀하의 서명 정보를 확인하는 데 사용할 수 있는 정보)와 개인 키(서명을 생성하거나 귀하에게 보낸 메시지를 해독하는 데 필요한 부분)로 구성됩니다. 이것이 Git이 오류를 발생시키는 이유입니다. 커밋에 서명하기 위한 개인 키를 얻을 수 없습니다. 유일한 옵션은 전체 키(개인 키 포함)의 백업을 찾거나 새 키를 만드는 것입니다.