--list-secret-keys로 표시되더라도 sudo gpg로 실행할 때 내 비밀을 사용할 수 없습니다.

--list-secret-keys로 표시되더라도 sudo gpg로 실행할 때 내 비밀을 사용할 수 없습니다.

저는 루트(sudo 사용)로 실행하고 gpg를 사용해야 하는 쉘 스크립트를 개발 중입니다. 암호화는 제대로 작동하지만 어떤 이유로든 암호 해독에서 내 키 사용을 거부합니다.

특정 명령:

sudo gpg --homedir '/home/username/.gnupg' -d file.gpg

실패하다:

gpg: WARNING: unsafe ownership on homedir '/home/username/.gnupg'
gpg: encrypted with 2048-bit RSA key, ID XXX, created YYYY-MM-DD
      "John Doe <[email protected]>"
gpg: public key decryption failed: Permission denied
gpg: decryption failed: No secret key

그러나 sudo gpg --homedir '/home/username/.gnupg' --list-secret-keys키가 올바르게 나열되어 있으며 일반 사용자로 gpg를 사용하여 파일의 암호를 해독할 수 있으므로(Sudo는 제외) 키나 파일에는 아무런 문제가 없습니다.

Manjaro에서 gpg 2.2.19를 실행 중입니다.

답변1

pinentry, 즉 키를 입력하기 위한 비밀번호와 관련된 권한 문제인 것으로 나타났습니다. 두 가지 솔루션/해결 방법이 있습니다.

  1. --pinentry-mode loopback: 권한 문제를 우회하여 터미널에 pinentry가 발생합니다.

  2. chmod o+rw $(tty): pinentry가 제대로 작동할 수 있도록 tty 권한을 변경합니다. 첫 번째 솔루션은 권한을 조작할 필요가 없기 때문에 아마도 더 바람직할 것입니다(적어도 이론적으로는 보안 문제가 발생할 수 있음).

답변2

달리기

screen

그런 다음 키를 삭제하세요.

관련 정보