
사용: gpg(GnuPG) 2.0.22 libgcrypt 1.5.3
원격 사이트에서 파일의 암호를 해독하려고 합니다. 키를 파일로 내보냈습니다. gpg <filename>
반환: (키 ID가 변경됨)
pub 2048R/656CC421 2018-04-19
sub 2048R/99F89J32 2018-04-19
보낸 사람에게 보내서 가져오고 서명하고 신뢰하도록 요청했습니다.
그들은 나에게 두 개의 다른 키 파일을 보냈습니다. 반품 사용 gpg <filename>
:
1. pub 2048R/62568LK1 2015-09-03
2. pub 2048R/J561VE25 2015-09-23
편집 키를 수행하면 다음과 같은 결과가 나타납니다.
내 키:
Secret key is available.
pub 2048R/656CC421 created: 2018-04-19 expires: never usage: SC
trust: ultimate validity: ultimate
sub 2048R/99F89J32 created: 2018-04-19 expires: never usage: E
[ultimate] (1).
해당 키:
1. pub 2048R/62568LK1 created: 2015-09-23 expires: never usage: SCE
trust: full validity: full
[ full ] (1).
2. pub 2048R/99F89J32 created: 2015-09-03 expires: never usage: SC
trust: full validity: full
[ full ] (1).
다음 매개변수를 사용하여 bash 스크립트에서 decrypt 명령을 실행하고 있습니다.
echo $passphrase | /usr/bin/gpg --verbose --passphrase-fd 0 --no-tty --output $output_file --recipient myuser --decrypt $input_file
다음은 명령의 출력입니다.
Version: GnuPG v1.2.4 (MingW32)
gpg: armor header:
gpg: public key is 99F89J32
gpg: using subkey 99F89J32 instead of primary key 656CC421
gpg: using subkey 99F89J32 instead of primary key 656CC421
gpg: cancelled by user
gpg: encrypted with 2048-bit RSA key, ID 99F89J32, created 2018-04-19
"usrname (Description) <[email protected]>"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key
이 모든 것에 대한 내 결론은 보낸 사람이 내가 보낸 것과 동일한 형식으로 공개 키를 나에게 보내야 한다는 것입니다. 와 같은:
pub 2048R/J561VE25 2015-09-23
sub 2048R/SOM3NUMB 2015-09-23
나는 그들이 나에게 보낸 키 파일에 해당 게시/구독 정보가 없기 때문에 gpg가 키 쌍 정보 중 한 부분만 가지고 있기 때문에 유효성을 검사할 수 없다고 생각했습니다.
내가 틀렸는지, 아니면 내 생각이 맞는지 누가 말해 줄 수 있나요?
감사해요!
답변1
Version: GnuPG v1.2.4 (MingW32)
이런 공그것은 오래되었습니다 – 버전 1.2.4가 출시되었습니다2003년. 보낸 사람은 보안 소프트웨어 업데이트에 별로 관심이 없는 것 같습니다.
(귀하의 2.0.22는 출시 날짜가 2013년이므로 그다지 좋지 않습니다.)
gpg: public key is 99F89J32 gpg: using subkey 99F89J32 instead of primary key 656CC421 gpg: using subkey 99F89J32 instead of primary key 656CC421
그것은 정상입니다. "기본" 키 쌍은 다른 키 서명(인증이라고도 함)에만 사용됩니다. 종종 메시지에 서명할 때도 사용됩니다. 암호화에는 사용할 수 없습니다. 항상 해당 목적을 위한 하위 키가 있습니다.
(분리를 통해 오프라인 서명이나 빈번한 암호화 키 순환 등도 허용됩니다.)
gpg: cancelled by user gpg: encrypted with 2048-bit RSA key, ID 99F89J32, created 2018-04-19 "usrname (Description) <[email protected]>" gpg: public key decryption failed: Operation cancelled gpg: decryption failed: No secret key
GnuPG가 잠금 해제를 위해 암호 문구를 표시하려고 시도한 것 같습니다.당신의키 쌍을 찾았지만 암호 창을 열지 못했거나 실수로 직접 취소했습니다.
비밀번호 프롬프트는 GnuPG에 의해 표시됩니다.소나무자체적으로 시작되는 구성 요소gpg-에이전트. Windows에서 문제 해결을 어디서부터 시작해야 할지 모르겠습니다.최신 버전더 잘 작동 할 것입니다. (GnuPG 2.0.22는 2013년에 출시되었습니다.)
GnuPG 2.1부터 시작하는 최신 버전은 "loopback pinentry" 모드를 지원합니다.소나무요소. 업그레이드 자체가 도움이 되지 않으면 이 옵션을 활성화해 보십시오.
발신자가 공개 키를 나에게 보내야 한다는 것
보낸 사람의 공개 키는 암호 해독에 쓸모가 없으며 서명 확인에만 필요합니다.
와 같은:
pub 2048R/J561VE25 2015-09-23
나는 그들이 나에게 보낸 키 파일에 해당 게시/구독 정보가 없기 때문에 gpg가 키 쌍 정보 중 한 부분만 가지고 있기 때문에 유효성을 검사할 수 없다고 생각했습니다.
아니요. 이 정보는 다음을 위한 것입니다.너, 사용자 - 키 유형, 짧은(쓸모없는) ID 및 만료 날짜를 요약합니다. GnuPG는 꼭 필요한 것은 아니지만 키 자체에서 완벽하게 추출할 수 있습니다.
답변2
여러 번 왔다 갔다 한 끝에 저는 두 가지 변경 사항에서 해결책을 찾았습니다.
gpg-agent.conf를
pinentry-program /usr/bin/pinentry-curses
추가해야 합니다.스크립트 작성자는
--batch
자신의 명령줄에 추가해야 했습니다.
이 작업이 완료되면 gpg는 비밀 키에 도달하여 암호를 해독할 수 있었습니다.
답장을 보내주신 Grarity에게 감사드립니다. 시간을 내주셔서 감사합니다.