나는 PGP 키로 git 커밋에 서명하는 것을 좋아해서 git commit -S
PGP 키 비밀번호를 묻는 대신 git이 멈추기 시작했을 때 꽤 충격을 받았습니다. 몇 달 동안 GPG 설정을 변경하지 않았으며 그 이후로 아무런 문제 없이 여러 번 커밋했습니다. 또한 gpg를 사용하여 개인 키를 보려고 하면 gpg -K
중단됩니다. 그러나 gpg -k
공개 키 보기를 실행하면 정상적으로 목록이 반환됩니다. 누군가가 이 문제의 원인과 해결 방법을 이해할 수 있기를 바랍니다.
답변1
나는 정확한 문제에 직면했습니다 (OSX Sierra 10.12.6, gpg/GnuPG 2.2.5)
중단되는 명령:
gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent
내 솔루션은 언급 된 것과 동일합니다남자위의 대부분의 다른 방법과 동일합니다(예: gpg-agent 종료).GPG 에이전트를 다시 시작하는 방법또한 중단됩니다.
# Solution
pkill -9 gpg-agent
그런 다음 git commit에 서명하기 위해 언급한 대로 tty env를 설정했습니다.카스위에도 그렇고 위에도 그렇고gpg가 커밋 개체에 서명하지 못했습니다..
export GPG_TTY=$(tty)
답변2
$ ps aux | grep -E "gpg-agent"
alper 28970 0.0 92436 3284 15:31 0:00 /usr/bin/gpg-agent --supervised
이 출력 변수에는 28970
.
from subprocess import Popen, PIPE
import signal
def kill_process_by_name(process_name):
p1 = Popen(["ps", "auxww"], stdout=PIPE)
p2 = Popen(["grep", "-E", process_name], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close() # noqa
p3 = Popen(["awk", "{print $2}"], stdin=p2.stdout, stdout=PIPE)
p2.stdout.close()
output = p3.communicate()[0].decode("utf-8").strip()
lines = output.splitlines() # awk may return more than one pid number
for pid in lines:
if pid.isnumeric():
os.kill(int(pid), signal.SIGKILL)