남에게 보이고 싶지 않은 파일이나 메시지가 있으신가요? 이런 데이터를 안전하게 보호하려면 GPG 암호화 키를 사용하는 것이 좋습니다. 리눅스 환경이라면 GnuPG만 설치되어 있으면 몇 가지 간단한 터미널 명령어만으로 손쉽게 파일을 암호화할 수 있습니다.
이 글에서는 터미널 명령어 몇 개만으로 리눅스에서 GPG 키를 생성하고 관리하는 방법을 단계별로 소개합니다.
GnuPG 설치하기
가장 먼저 GnuPG를 설치해야 합니다. Debian이나 Ubuntu 기반 배포판이라면 터미널을 열고 다음 명령어를 실행하세요.
sudo apt install gnupg
DNF나 YUM 패키지 관리자를 사용하는 배포판(예: Fedora)에서는 아래 명령어를 사용합니다.
yum install gnupg
또는
dnf install gnupg
Arch Linux 사용자라면 다음 명령어로 설치할 수 있습니다.
pacman -S gnupg
물론 소스 코드를 직접 다운로드하여 컴파일하는 방법도 가능합니다.
GPG 키 쌍 생성하기
GnuPG 설치가 끝나면 개인 키(private key)와 공개 키(public key)로 구성된 자신만의 GPG 키 쌍을 생성해야 합니다. 개인 키는 마스터 키 역할을 하며, 파일을 암호화·복호화하고 본인의 서명을 만드는 데 사용됩니다.
공개 키는 다른 사람에게 공유하는 키입니다. 암호화된 파일이 실제로 당신의 키로 만들어진 것인지 검증하는 데 쓰이며, 다른 사람이 당신에게 보낼 파일을 암호화할 때도 활용됩니다.
키 쌍을 생성하려면 터미널을 열고 다음 명령어를 입력하세요.
gpg --gen-key
명령어를 실행하면 키 쌍 생성이 시작됩니다. 이름과 이메일 주소를 입력하라는 메시지가 표시되면 정보를 입력하고 Enter 키를 누르세요.
입력한 정보를 확인, 수정 또는 취소할 수 있는 옵션이 나타납니다. 원하는 항목을 선택한 뒤 Enter 키를 누릅니다.
키가 생성되기 전에 안전한 암호(passphrase)를 설정해야 합니다. 암호를 입력하고 Enter 키를 누르세요.
키 생성에는 시간이 다소 걸릴 수 있습니다. 완료되면 화면에 확인 메시지가 표시됩니다.
키 폐기(Revoke)하기
어떤 이유로든 키를 폐기해야 하는 상황이 생길 수 있습니다. 이때는 다음 명령어를 실행하세요.
gpg --output revoke.asc --gen-revoke uid
uid 부분에는 키의 사용자 ID를 넣습니다. 예를 들어 이메일 주소를 사용할 수 있습니다. 이 명령은 폐기 인증서(revocation certificate)를 생성하며, 진행하려면 암호(passphrase)가 필요합니다. 0부터 3까지 번호로 된 목록에서 폐기 사유를 선택해야 합니다.
키를 생성한 직후 바로 폐기 인증서를 만들어 두는 것도 좋은 습관입니다. 인증서는 이 예시처럼 'revoke.asc'라는 파일로 저장됩니다.
공개 키를 파일로 내보내기
파일이나 메시지를 다른 사람과 공유하려면 공개 키를 상대방에게 전달해야 하며, 이를 위해서는 먼저 키를 내보내야(export) 합니다. 공개 키를 파일로 내보내려면 터미널을 열고 다음 명령어를 입력하세요.
gpg --armor --export your@emailaccount.com > key.asc
텍스트 편집기에서 읽을 수 있는 형식(예: ASCII 텍스트 파일)으로 키를 저장하고 싶다면 다음 명령어를 사용합니다.
gpg --armor --output key.txt --export your@emailaccount.com
생성된 파일은 일반적인 텍스트 편집기로 열어 확인할 수 있습니다.
공개 키를 키서버에 등록하기
공개 키를 더 쉽게 공유하고 찾을 수 있도록 키서버(keyserver), 즉 공개 키 저장소에 등록할 수도 있습니다. 예를 들어 MIT 키서버를 이용하면 해당 키가 다른 키서버와도 자동으로 동기화됩니다.
먼저 터미널에서 다음 명령어를 입력해 키 ID를 확인합니다.
gpg --fingerprint
목록에서 자신의 키를 찾아 사용자 ID 지문(fingerprint)의 마지막 8자리를 적어 둡니다. 예를 들어 B852 085C 같은 형식입니다.
확인한 8자리 ID를 사용해 다음 명령어를 실행합니다. B852 085C는 반드시 자신의 ID로 바꿔서 입력하세요.
gpg --keyserver pgp.mit.edu --send-key B852085C
이제 공개 키가 키서버에 등록되어 다른 사람들이 검색하고 가져올 수 있게 됩니다. 공개 키는 공유해도 안전하다는 점을 기억하세요. 공개 키만으로는 파일이나 메시지를 복호화할 수 없으며, 오직 당신에게 보낼 데이터를 암호화하는 용도로만 사용됩니다. 복호화는 개인 키를 가진 당신만 할 수 있습니다.
파일 암호화 및 복호화하기
파일을 암호화하려면 터미널에서 다음 명령어를 실행하세요.
gpg --encrypt --recipient 'your@emailaccount.com' --output encryptedfile.txt.enc originalfile.txt
받는 사람 이메일 대신 키 지문(fingerprint)을 지정할 수도 있습니다. 입력 파일명과 출력 파일명은 실제 암호화하려는 파일에 맞게 변경하세요.
암호화된 파일을 복호화하려면 다음 명령어를 실행합니다.
gpg --decrypt --output decrypted.txt encryptedfile.txt.enc
복호화 과정에서 개인 키에 접근하기 위해 암호(passphrase)를 입력하라는 메시지가 표시됩니다. 암호를 입력하면 --output 플래그에 지정한 파일명으로 복호화된 내용이 저장됩니다.
GPG 암호화로 얻는 안심
이상적인 세상이라면 민감한 파일을 암호화할 필요조차 없겠지만, 현실은 그렇지 않습니다. 남의 시선이 걱정된다면 GPG 암호화로 파일, 메시지, 이메일을 안전하게 지킬 수 있습니다.
Windows 사용자라면 Gpg4win을 사용해 파일을 암호화할 수도 있습니다. 자신만의 암호화 팁이 있다면 댓글로 공유해 주세요.