Linux에서 GPG 키를 백업 및 복원하는 방법

게시 됨: 2022-08-18
bash 프롬프트를 표시하는 Linux 노트북
Fatmawati achmad zaenuri/Shutterstock.com

개인 정보 보호는 점점 더 뜨거운 주제입니다. Linux에서 gpg 명령을 사용하면 사용자가 공개 키 암호화를 사용하여 파일을 암호화할 수 있습니다. 이 경우 암호화 키를 분실하면 치명적입니다. 백업 방법은 다음과 같습니다.

OpenPGP 및 GNU 프라이버시 가드

종이 하드 카피에 비해 전자 파일의 장점 중 하나는 승인된 사람만 액세스할 수 있도록 전자 파일을 암호화할 수 있다는 것입니다. 그들이 엉뚱한 손에 넘어가도 상관없습니다. 귀하와 지정된 수신자만 파일 내용 에 액세스할 수 있습니다.

OpenPGP 표준은 공개 키 암호화라고 하는 암호화 시스템을 설명합니다. 해당 표준의 GNU Privacy Guard 구현은 표준에 따라 암호화 및 암호 해독을 위한 명령줄 도구인 gpg 를 만들었습니다.

이 표준은 공개 키 암호화 체계를 설명합니다. "공개 키"라고 하지만 두 개의 키가 관련되어 있습니다. 각 사람은 공개 키와 개인 키를 가지고 있습니다. 이름에서 알 수 있듯이 개인 키는 다른 사람에게 공개되거나 전송되지 않습니다. 공개 키를 안전하게 공유할 수 있습니다. 실제로 스키마가 작동하려면 공개 키를 공유해야 합니다.

파일이 암호화되면 인코딩 과정에서 보낸 사람의 개인 키와 받는 사람의 공개 키가 사용됩니다. 그러면 파일이 받는 사람에게 배달될 수 있습니다. 그들은 자신의 개인 키와 보낸 사람의 공개 키를 사용하여 파일을 해독합니다.

공개 및 개인 키는 일치하는 쌍으로 생성되고 특정 ID에 연결됩니다. 민감한 자료를 다른 사람에게 전송하지 않더라도 자신의 컴퓨터에서 이를 사용하여 개인 문서에 추가 보호 계층을 추가할 수 있습니다.

Linux에서 GPG를 사용하여 파일을 암호화하고 해독하는 방법
관련 Linux에서 GPG를 사용하여 파일을 암호화 및 암호 해독하는 방법

암호화는 세계적 수준의 알고리즘과 암호화 기능을 사용합니다. 적절한 공개 키와 개인 키가 없으면 암호화된 파일에 들어갈 수 없습니다. 그리고 열쇠를 잃어버려도 마찬가지입니다. 새 키를 생성해도 도움이 되지 않습니다. 파일을 해독하려면 암호화 프로세스에 사용된 키가 필요합니다.

말할 필요도 없이, 키를 백업하는 것은 키를 복원하는 방법을 아는 것과 마찬가지로 가장 중요합니다. 이러한 작업을 수행하는 방법은 다음과 같습니다.

.gnupg 디렉토리

키는 홈 디렉토리의 ".gnupg"라는 디렉토리에 저장됩니다. 이 디렉토리에는 암호화된 파일을 보낸 사람의 공개 키도 저장됩니다. 공개 키를 가져오면 해당 디렉토리의 색인화된 데이터베이스 파일에 추가됩니다.

물론 이 디렉토리의 어떤 것도 일반 텍스트로 저장되지 않습니다. GPG 키를 생성할 때 암호를 입력하라는 메시지가 표시됩니다. 이 암호가 무엇인지 기억하셨기를 바랍니다. 당신은 그것을 필요로 할거야. ".gnugp" 디렉토리의 항목은 그것 없이는 해독될 수 없습니다.

tree 유틸리티를 사용하여 디렉토리를 보면 하위 디렉토리와 파일의 구조를 볼 수 있습니다. 컴퓨터에 아직 트리가 없는 경우 배포의 리포지토리에서 tree 를 찾을 수 있습니다.

 나무 .gnupg 

.gnupg 디렉토리의 디렉토리 구조.

디렉토리 트리의 내용은 다음과 같습니다.

  • openpgp-revocs.d : 이 하위 디렉토리에는 해지 인증서가 포함되어 있습니다. 개인 키가 일반 지식이 되거나 다른 방식으로 손상되는 경우 이 정보가 필요합니다. 해지 인증서는 이전 키를 폐기하고 새 키를 채택하는 과정에서 사용됩니다.
  • private-keys-v1.d : 이 하위 디렉토리는 개인 키를 저장합니다.
  • pubring.kbx : 암호화된 파일입니다. 여기에는 귀하를 포함한 공개 키와 이에 대한 일부 메타데이터가 포함됩니다.
  • pubring.kbx~ : "pubring.kbx"의 백업본입니다. "pubring.kbx"가 변경되기 직전에 업데이트됩니다.
  • trustdb.gpg : 이것은 자신의 키와 다른 사람이 소유한 허용된 공개 키에 대해 설정한 신뢰 관계를 유지합니다.

어쨌든 숨겨진 파일과 폴더를 포함하여 홈 디렉토리를 정기적으로 자주 백업해야 합니다. 당연히 ".gnupg" 디렉토리를 백업합니다.

그러나 GPG 키가 자체적으로 정기적인 백업을 보장할 만큼 중요하다고 생각하거나 두 컴퓨터에 키를 둘 수 있도록 데스크톱에서 랩톱으로 키를 복사하고 싶을 수도 있습니다. 결국 당신은 두 기계 모두에 있습니다.

백업할 키 결정

GPG 시스템에 어떤 키가 있는지 알려주도록 gpg 에 요청할 수 있습니다. --list-secret-keys 옵션과 --keyid-format LONG 옵션을 사용할 것입니다.

 gpg --list-secret-keys --keyid-format LONG 

터미널 창에 GPG 키 세부 정보 나열

우리는 GPG가 "/home/dave/.gnupg/pubring.kbx" 파일 내부를 찾고 있다고 들었습니다.

화면에 나타나는 것은 실제 비밀 키가 아닙니다.

  • "sec"(비밀) 라인은 암호화 비트 수(이 예에서는 4096), 키 ID, 키 생성 날짜 및 "[SC]"를 표시합니다. "S"는 디지털 서명에 사용할 수 있는 키를 의미하고 "C"는 인증에 사용할 수 있음을 의미합니다.
  • 다음 줄은 키 지문입니다.
  • "uid" 줄에는 키 소유자의 ID가 있습니다.
  • "ssb" 줄은 생성된 비밀 하위 키와 "E"를 보여줍니다. "E"는 암호화에 사용할 수 있음을 나타냅니다.

다른 ID에 사용할 여러 키 쌍을 만든 경우 해당 키 쌍도 나열됩니다. 이 사용자에 대해 백업할 키 쌍이 하나만 있습니다. 백업에는 이 키의 소유자가 수집하고 신뢰하기로 결정한 다른 사람의 모든 공개 키가 포함됩니다.

백업

gpg 에 모든 ID에 대한 모든 키를 백업하도록 요청하거나 단일 ID와 연결된 키를 백업하도록 요청할 수 있습니다. 개인 키, 비밀 키 및 신뢰 데이터베이스 파일을 백업합니다.

공개 키를 백업하려면 --export 옵션을 사용합니다. --export-options backup 옵션도 사용할 것입니다. 이렇게 하면 다른 컴퓨터에서 파일을 올바르게 가져올 수 있도록 모든 GPG 관련 메타데이터가 포함됩니다.

--output 옵션을 사용하여 출력 파일을 지정합니다. 그렇게 하지 않으면 출력이 터미널 창으로 전송됩니다.

 gpg --export --export-options 백업 --output public.gpg 

공개 GPG 키 내보내기

단일 ID에 대한 키만 백업하려는 경우 키와 연결된 이메일 주소를 명령줄에 추가합니다. 어떤 이메일 주소인지 기억나지 않으면 위에서 설명한 대로 --list-secret-keys 옵션을 사용하세요.

 gpg --export --export-options 백업 --output public.gpg [email protected] 

단일 ID에 대한 공개 GPG 키 내보내기

개인 키를 백업하려면 --export 옵션 대신 --export-secret-keys 옵션을 사용해야 합니다. 이것을 다른 파일에 저장했는지 확인하십시오.

 gpg --export-secret-keys --export-options 백업 --output private.gpg 

개인 GPG 키 내보내기

이것은 개인 키이므로 계속하기 전에 GPG로 인증해야 합니다.

비밀번호를 묻는 메시지가 표시되지 않습니다 . 입력해야 하는 것은 GPG 키를 처음 생성할 때 제공한 암호 입니다. 좋은 암호 관리자를 사용하면 그러한 정보를 보안 메모로 보관할 수 있습니다. 보관하기 좋은 곳입니다.

개인 키 내보내기를 위한 GPG 암호 제공

암호가 승인되면 내보내기가 수행됩니다.

신뢰 관계를 백업하려면 "trustdb.gpg" 파일에서 설정을 내보내야 합니다. "trust.gpg"라는 파일로 출력을 보내고 있습니다. 이것은 텍스트 파일입니다. cat 을 사용하여 볼 수 있습니다.

 gpg --export-ownertrust > trust.gpg
 고양이 트러스트.gpg 

GPG 신뢰 관계 내보내기

다음은 우리가 만든 세 개의 파일입니다.

 ls -hl *.gpg 

내보내기 명령으로 생성된 세 개의 파일

우리는 이것을 다른 컴퓨터로 옮기고 복원할 것입니다. 이렇게 하면 해당 컴퓨터에서 ID가 설정되고 기존 GPG 키를 사용할 수 있습니다.

키를 다른 컴퓨터로 이동하지 않고 키가 안전한지 이중으로 확인하기 위해 백업하는 경우 다른 미디어에 복사하여 안전하게 저장하십시오. 엉뚱한 손에 들어가더라도 당신의 공개 키는 어쨌든 공개되므로 거기에는 아무런 해가 없습니다. 그리고 암호가 없으면 개인 키를 복원할 수 없습니다. 그러나 여전히 백업을 안전하고 비공개로 유지하십시오.

파일을 Manjaro 21 컴퓨터에 복사했습니다.

 ls *.gpg 

Manjaro 컴퓨터로 전송된 내보낸 파일

기본적으로 Manjaro 21은 Z zsh 를 사용하므로 다르게 보입니다. 그러나 이것은 중요하지 않습니다. 아무 것도 영향을 미치지 않습니다. 우리가 하는 일은 쉘이 아니라 gpg 프로그램에 의해 관리됩니다.

키를 가져오려면 --import 옵션을 사용해야 합니다.

 gpg -- import public.gpg 

공개 GPG 키 가져오기

키를 가져올 때 키의 세부 정보가 표시됩니다. "trustdb.gpg" 파일도 생성됩니다. 개인 키를 가져오는 방법도 간단합니다. --import 옵션을 다시 사용합니다.

 gpg -- private.gpg 가져오기 

개인 GPG 키 가져오기

암호를 입력하라는 메시지가 표시됩니다.

개인 GPG 키를 가져오기 위한 암호 입력

"Passphrase" 필드에 입력하고 "Tab" 키를 누른 다음 "Enter"를 누르십시오.

가져온 개인 GPG 키 확인

가져온 키의 세부 정보가 표시됩니다. 우리의 경우에는 하나의 키만 있습니다.

신뢰 데이터베이스를 가져오려면 다음을 입력하십시오.

 gpg --import-ownertrust trust.gpg 

GPG 신뢰 관계 가져오기

--list-secret-keys 옵션을 한 번 더 사용하여 모든 것이 제대로 임포트되었는지 확인할 수 있습니다.

 gpg --list-secret-keys --keyid-format LONG 

가져오기가 작동했는지 확인

이것은 이전에 Ubuntu 컴퓨터에서 본 것과 똑같은 출력을 제공합니다.

개인 정보 보호

GPG 키를 백업하여 안전한지 확인하십시오. 컴퓨터에 재해가 발생했거나 최신 모델로 업그레이드한 경우 키를 새 컴퓨터로 전송하는 방법을 알고 있어야 합니다.

관련: rsync를 사용하여 Linux 시스템을 백업하는 방법