GnuPG(GNU Privacy Guard)는 PGP(Pretty Good Privacy)를 대체하는 암호화/복보화 프로그램이다. 완전히 무료이고, OpenPG 표준인 RFC4880을 따른다.
자세한 사항은 https://www.gnupg.org/ 에서 확인 할 수 있다.
GnuPG Key 생성
GPG 개인키(private key)를 생성해보자.
생성한 결과는 아래와 같다.
GnuPG Key 목록 보기
gpg –gen-key로 키를 생성하고 난 뒤 키는 ~/.gnupg/ 디렉토리에 만들어진다. 생성된 키를 확인하기 위해서는 다음과 같이 확인할 수 있다
공개키(public key)를 확인하기 위해서는 –list-keys 옵션으로 확인할 수 있다.
gpg –list-keys
개인키(private key)를 확인하기 위해서는 –list-secret-keys 옵션으로 확인할 수 있다.
gpg –list-secret-keys
gpg Key를 사용하여 파일 암호화하기
개인키를 생성했으니 이제 키 기반으로 파일을 암호화해보자. 예제를 위해 /home/seed/ test.data 파일을 만들었다.
gpg –encrypt 명령어를 사용하여 파일을 암호화 한다. 이때 –recipient 옵션에 키를 생성할 때 입력한 ID를 입력한다.
나의 경우는 kmkim 이다. 위에서 확인 가능
아래와 같이 gpg 파일이 생성된것을확인 할 수 있다.
암호화된것을 볼 수 있다.
gpg Key를 사용하여 파일 복호화하기
암호화된 파일을 복호화해보자. 기존의 원본파일은 test.data.backup 으로 변경후 복호화해보겠다.
암호화된 파일을 복호화하기 위해서는 gpg –decrypt 옵션을 사용해야한다. 복호화할 때는 개인키(private key)를 생성할 때 설정한 비밀번호를 입력해야 복호화가 된다. 비밀번호를 잘못 입력하면 당연히 복호화가 안된다.
복호화된 파일과 내용을 확인 가능하다.
공개키 배포
생성된 키를 다른 서버에서 작업을 하고 싶으면 공개키(public key)를 배포하여 생성된 공개키 기반으로 작업을 할 수 있다.
공개키 Export
생성된 파일과 공개키를 확인 할 수 있다.
공개키 Import
생성한 공개키를 다른 서버에 전송해서 임포트하여 사용할 수 있다.
docker 를 이용해서 home 디랙토리를 붙여서 컨테이너를 하나 생성한다. 만들어진 파일들이 있는것을 볼 수 있다.
그럼 Import 시켜보겠다.
키가 Import 된것을 확인 가능하다.
공개키를 가져왔으니 공개키를 가지고 암호화가 가능하다.
하지만 secret key 가 없어 복호화는 안된다.
개인키 Export
개인키(private key)를 배포하여 작업을 할 하려면 개인키를 export 하면된다.
개인키 Import
공개키와 마찬가지로 개인키도 Import 하면 된다.
Import 된것을확인 해본다.
이제 복호화를 진행해보면 정상적으로 복호화가 된다.
GPG Key 삭제
생성한 GPG key를 삭제하고 하려면 –delete-secret-key와 –delete-key로 할 수 있다. 키 삭제는 반드시 개인키를 먼저 삭제해야한다.
리스트를 확인해보면 삭제된것을확인 가능하다.
RPM-GPG-KEY 파일 만들기
Running gpg-agent on Ubuntu