Git을 사용하여 커밋하려고 할 때이 오류가 발생합니다.
gpg: skipped "name <name@mail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
아래와 같이 새 키를 생성했지만 여전히 동일한 오류가 발생합니다.
gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub 2048R/35F5FFB2 2016-04-23
uid name (New key) <name@mail.com>
sub 2048R/112A8C2D 2016-04-23
비밀 키는 위와 동일합니다.
git 태그 지정을 위해 GPG 키 생성 을 발견
하고 단계를 수행했지만 여전히 작동하지 않습니다.
답변
사용하기 전에 비밀 키를 구성해야합니다.
git config user.signingkey 35F5FFB2
또는 모든 저장소에 동일한 키를 사용하려면 전역 적으로 선언하십시오.
git config --global user.signingkey 35F5FFB2
출처 : Git 도구-작업 서명
답변
이것은 Windows 10에서 저에게 효과적이었습니다 (gpg.exe에 대한 절대 경로를 사용합니다).
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
이것은 수정 전에 얻은 오류였습니다.
gpg: skipped "3E81C*******": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
답변
나를 위해 일한 것은
git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"
gpg2.exe의 전체 경로를 찾으려면 :
where gpg2.exe
답변
이 모든 답변을 완료하고 싶습니다. 왜냐하면 이것에 많은 문제가 있기 때문입니다.
이러한 예제는 --global
플래그를 사용 하지만 로컬로 이러한 작업을 수행하려면 제거 할 수 있습니다.
git에서 비밀 키 구성
git config --global user.signingkey 35F5FFB2
git에서 witch gpg 프로그램 tu 사용 구성 (선택 사항)
일부 시스템 (exemple를위한 우분투) 수 gpg
와 gpg2
같은 시간에. 사용할 것을 지정해야합니다.gpg2
git config --global gpg.program gpg2
GPG_TTY 내보내기 (선택 사항)
ssh 환경에서이 명령을 사용하면 다음 오류가 발생할 수 있습니다. Inappropriate ioctl for device
또는 gpg: échec de la signature : Ioctl() inapproprié pour un périphérique
. 다음을 통해 해결할 수 있습니다.
export GPG_TTY=$(tty)
GPG 노래 자동 활성화 (옵션)
git config --global commit.gpgsign true
답변
Windows 10 컴퓨터에서 동일한 상황이 발생했습니다.
$ git commit -m "Improve logging, imports and show time executed"
gpg: signing failed: Operation cancelled
gpg: signing failed: Operation cancelled
error: gpg failed to sign the data
fatal: failed to write commit object
명령 "C:\Program Files (x86)\GnuPG\bin\gpg.exe" --list-secret-keys --keyid-format LONG
과 gpg --list-secret-keys --keyid-format LONG
나에게 완전히 다른 결과를주는 곳!
$ where gpg
C:\Program Files\Git\usr\bin\gpg.exe
C:\Program Files (x86)\GnuPG\bin\gpg.exe
주된 이유는 이전 답변과 관련이 있지만 다른 의미입니다.
- GPG의 git (구성된 경로) 버전을 사용하여 gpg 키를 만들었습니다.
- Git은 커밋에 다운로드 된 gpg 버전을 사용하도록 구성되었습니다.
- GPG 구현은 자체 인증서 데이터베이스 및 저장소를 사용하는 것으로 보입니다.
나는 이것이이 메시지를 우연히 발견하고 이전 답변으로 문제를 해결하지 못하는 사람에게 도움이되기를 바랍니다.
답변
변수를 설정해야합니다 GNUPGHOME
. 그것 없이는 GnuPG는 당신의 키를 찾을 수 없습니다.
# On unix add it to your path
# On windows it will usually be under:
<drive>:\Users\<username>\AppData\Roaming\gnupg
Unix에서는 단순히 경로에 추가합니다.
Windows에서는 제어판을 열고 다음과 같이 설정해야합니다.
System Variable
Name: GNUPGHOME
Path: <drive>:\Users\<username>\AppData\Roaming\gnupg
답변
.gitconfig의 git 이름과 이메일 저장소가 제공된 gpg 키의 것과 다르다는 점에서 동일한 문제가 발생했습니다 . 나는 그것들을 맞추기 위해 바꾸었고 작동하기 시작했습니다.