gpg가 데이터 서명에 실패했고 커밋 객체를 쓰지 못했습니다.

gpg가 데이터 서명에 실패했고 커밋 객체를 쓰지 못했습니다.

이 오류에 대해 전 세계를 검색했지만 유용한 힌트를 찾을 수 없습니다.

keybase를 사용하여 키를 생성하고 공개 키를 github gpg에 추가했습니다.

내꺼 gpg --list-secret-keys --keyid-format LONG 는 이거다

--------------------------------
sec   rsa4096/7E8*******60B47B 2021-03-06 [SC] [expires: 2037-03-02]
      51FBCD0E******************014D4860B47B
uid                 [ultimate] Fatih <********@live.be>
uid                 [ultimate] Fatih <[email protected]>
ssb   rsa4096/15BBF8A123C4AC1B 2021-03-06 [E] [expires: 2037-03-02]

내 거.gitconfig is this

[user]
        signingkey = 7E8*******60B47B
        email = [email protected]
        name = kgnfth
[commit]
        gpgsign = true
[gpg]
        program = gpg

export GPG_TTY=$(tty)내 .zshrc 파일에 추가했습니다.

git commit -m "first commit" 을 실행할 때마다 이 오류가 발생합니다.

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

서명 키에 문제가 없습니다. 또한 gpg를 gpg2로 변경해 보았으나 동일한 오류가 발생했습니다.

네 도움이 필요한지 몰랐어

감사해요.

답변1

허용되는 답변에 따르면 gpg-agent를 zsh 플러그인에 추가하면 문제가 해결됩니다. 나중에 내보내기 GPG_TTY만 하면 충분하다는 것을 알았습니다 .

.zshrc 또는 .zprofile에 다음 줄을 추가합니다(선호).

export GPG_TTY=$TTY

추가 세부 사항을 위해 gpg는 현재 사용 중인 터미널이 아닌 다른 외부 소스에 핀 입력 프로세스를 출력하는 것으로 보입니다.텔레타이프라이터현재 터미널에 대한 참조를 저장하여 다음과 같이 내보냅니다.GPG_TTY이 경우 문제가 해결되었습니다.

답변2

zshrc 구성 파일에 gpg-agent 플러그인을 추가하여 문제를 해결했습니다.

관련 정보