컴퓨터 오류가 발생한 후 보그 백업 저장소에서 데이터를 복원했습니다.
내 ~/.gnupg
폴더는 괜찮아 보이고, 개인 키도 있고, 권한도 올바른 것 같습니다. 일반적으로 Borg는 이 일을 훌륭하게 수행합니다. 개인 키 파일을 확인해 보니 cat
데이터가 손상된 흔적은 없습니다.
하지만 개인 키를 나열하거나 사용할 수는 없습니다. pacman
설치 중에 가져온 공개 키와 만 상호 작용할 수 있습니다 .
한 컴퓨터에서 다른 컴퓨터로 복사한 후 개인 키가 인식되지 않는 문제를 다루는 몇 가지 유사한 게시물을 보았습니다. 일반적으로 전송을 재사용한 gpg —export-key
다음 반대 명령을 사용하여 가져오라는 조언에 따라 문제가 해결됩니다.
불행하게도 내 오래된 기계가 고장나서 복구할 수 없기 때문에 나에게는 그런 여유가 없습니다. 키 가져오기 및 내보내기에 대해 알고 있지만 항상 키를 이동하는 안전한 프로세스일 뿐이라고 생각했습니다.
그래서 두 가지 질문이 있습니다.
백업 스크립트를 확인하고 GPG 키에 대한 내보내기 명령을 사용해야 합니까?
여전히 키를 복구할 수 있나요?
=======편집======
내가 하나 찾았어우편 엽서아치 포럼에서 나와 똑같은 문제를 겪고 있는 사용자가 있어서 따라야 할 몇 가지 단서를 더 얻었습니다.
내가 지금까지 시도한 것 :
gpg --version
> gpg (GnuPG) 2.4.5
ps aux | grep gpg-a
> /usr/bin/gpg-agent --supervised
#About ownership:
chown -R $USER:$USER .gnupg
# Checking UID/GID with show a result of `1000` both on filesystem # # and backup archive.
ls -vn .gnupg/private-keys-v1.d
gpg --export-secret-keys
> gpg: WARNING: nothing exported
gpg -v --list-secret-keys
> gpg: enabled compatibility flags:
> gpg: using pgp trust model
# Most relevant results of:
strace -f -o /tmp/gpg.strace gpg --list-secret-keys
cat /tmp/gpg.strace
> 76220 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> 76220 access("/home/$USER/.gnupg/secring.gpg", F_OK) = -1 ENOENT (No such file or directory)
# Listing public keys
gpg --list-keys
> Returns one public key imported by pacman during install
gpg -K
> Returns nothing
ls -ln .gnupg/
.rw-r----- 12 1000 13 Mar 10:45 common.conf
drwx------ - 1000 6 Sep 2023 crls.d
.rw------- 2.0k 1000 13 Sep 2023 gpg-agent.conf
.rw------- 703 1000 5 Mar 18:48 gpg.conf
drwx------ - 1000 30 Aug 2023 private-keys-v1.d
drwxr-x--- - 1000 14 Mar 19:27 public-keys.d
.rw-r--r-- 0 1000 24 Aug 2023 pubring.gpg
.rw-r--r-- 7.7k 1000 5 Mar 12:13 pubring.kbx
.rw-r--r-- 7.0k 1000 7 Sep 2023 pubring.kbx~
.rw------- 600 1000 8 Mar 07:20 random_seed
.rw-r----- 676 1000 30 Aug 2023 sshcontrol
.rw------- 1.6k 1000 2 Sep 2023 trustdb.gpg
답변1
지금 가루다 kde를 설치하려고 하는데 아직 파악하지 못한 일부 기본 gpg 설정이 포함되어 있는 것으로 나타났습니다.
어쨌든 일부 프로세스는 지속적으로 기본 폴더를 다시 생성하고 있는 것으로 나타났습니다 .gnupg
. 모든 gpg 관련 시스템 서비스(주로 및 gpg-agent.service
) 를 사용자 및 루트로 비활성화한 gpg-agent.socket
다음 gpg 에이전트가 책임을 지는 것 같지 않습니다 killall gpg-agent
.
실제로는 백업에서 내 gpg 폴더를 복원하지 않고 자동으로 생성된 폴더와 병합했는데 어떤 이유로 작동하지 않습니다.
마지막으로 범인을 확실히 찾기 위해 rm -rf
스크립트를 사용하여 백업에서 폴더를 복원하여 어떤 프로세스에서든 폴더를 다시 생성할 시간이 없도록 할 수 있습니다.
그 이후로 잘 작동하고 있습니다.