태그 보관물: git

git

git commit signing failed : secret key not available key not available gpg: signing failed: secret key

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를위한 우분투) 수 gpggpg2같은 시간에. 사용할 것을 지정해야합니다.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 LONGgpg --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 키의 것과 다르다는 점에서 동일한 문제가 발생했습니다 . 나는 그것들을 맞추기 위해 바꾸었고 작동하기 시작했습니다.


이 글은 Git 카테고리에 분류되었고 태그가 있으며 님에 의해 에 작성되었습니다.