반응형
발단
vscode에 GPG를 사용한 커밋 사이닝 시에 다음과 같은 오류가 발생하였다.
error: gpg failed to sign the data
Git Log를 자세히 살펴보니 다음과 같았다.
error: gpg failed to sign the data
fatal: failed to write commit object
심지어, pinentry 설치와 GPG 경로 설정도 정상적으로 되어 있는 상태임을 확인하였다.
하지만 이 문제는 GPG Key에 Passphrase가 걸려있어 발생하는 문제였다.
해결 방법
1. 임시로 GPG 키를 한번 사용하여 해결
먼저, settings.json
에서 다음과 같은 구문을 삽입한다.
"git.enableCommitSigning": true
본 구문을 삽입후 vscode에 빌트인된 쉘을 열고 다음을 입력함으로써 해결할 수 있다.
echo 'GPG Unlocked.' | gpg2 -e -r <Key ID> | gpg2 -d
단, 이경우는 캐시에 의존하므로, ~/.gnupg/gpg-agent.conf
을 열어 다음을 추가하는 것을 권장한다.
max-cache-ttl 32400
default-cache-ttl 32400
이제 32400초, 즉 9시간 동안 키를 사용할 수 있다.
2. TTY를 사용하여 vscode에서 비밀번호를 입력하도록 하기
본 솔루션은 출처에 적힌 내용을 인용하였습니다.
필자는 1번 솔루션을 사용하여 해결하였기 때문에 본 솔루션이 작동 여부를 확인하지 않았습니다.
출처: https://github.com/microsoft/vscode/issues/130415#issuecomment-1051780429
먼저, settings.json
에서 다음과 같은 구문을 삽입한다.
"git.enableCommitSigning": true
~/.bashrc
를 열고 마지막 줄을 줄바꿈 후, 다음 구문을 삽입한다.
export GPG_TTY=$(tty)
삽입 후 다음 명령어를 입력하여 설정을 마친다.
source ~/.bashrc
만약, 본 방법이 작동하지 않는다면, 같은 방법을 ~/.bash_profile
파일에 그대로 적용하면 될 것이다.
반응형