GPG - GNU Privacy Guard
Intro
- GNU Privacy Guard, is a public key cryptography implementation.
Install
- Alpine
$ doas apk add gpg gpg-agent
- Ubuntu/Debian
$ sudo apt-get install gnupg
Setup
- gpg 키생성: default로 진행: Real name과 Email 입력: 비밀번호 입력
- 암호화방식: 최신의 ECC(ed25519) 방식 사용
$ gpg --full-gen-key
Create a Revocation Certificate
- 무효화 인증키 생성 (보안키분실시 사용, 따로 잘 보관)
- 파일모드가 600인지 확인
$ gpg --output ~/revocation.crt --gen-revoke your_email@address.com
How To Import Other Users’ Public Keys
$ gpg --import name_of_pub_key_file
How To Verify and Sign Keys
$ gpg --fingerprint your_email@address.com
$ gpg --list-keys # 키리스트 확인
$ gpg --armor --export # public key 확인
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZPwe2hYJwKYBBAHaRw8BAQdATXg1HK+wZW/sZlDXfs7KEJeEyX6YRKx9a60c
P5pj4mwtAPwP2wq1ACEdj+V6VOH/1ZE5KlH7L8UkYlJ8lK+ZdZBK+wEAlknNS5O7
...
-----END PGP PUBLIC KEY BLOCK-----
Encrypt and Decrypt Messages with GPG
- Encrypt Messages
$ gpg --encrypt --sing --armor -r <your_email@address.com> <name_of_file> $ ls $ <name_of_file>.asc
- Decrypt Messages
$ gpg <name_of_file>.asc
Key Maintenance
$ gpg --list-keys # list available GPG keys
$ gpg --refresh-keys # update the key information
$ gpg --keyserver <key_server> --refresh-keys # pull information from a specific key server
Bakcup & Restore
- backup (사용중인 PC)
```
tree로 ~/.gnupg 확인
tree ~/.gnupg
현재 사용중인 키 확인
gpg –list-secret-keys –keyid-format LONG
백업
mkdir ~/gpg-backup
gpg –export –export-options backup –output ~/gpg-backup/public-key.gpg
gpg –export-secret-keys –export-options backup –output ~/gpg-backup/private-key.gpg
gpg –export-ownertrust > ~/gpg-backup/trust_key.gpg
tar cvf
* restore (다른 PC)
USB mount
tar xvf
키 복원
gpg –import public-key.gpg gpg –import private-key.gpg gpg –import-ownertrust trust-key.gpg
키 확인
gpg –list-secret-keys –keyid-format LONG
## PASS(The Standard Unix Password Manager) with gpg
* pass는 유닉스에서 개인의 패스워드를 관리하는 표준 툴이다.
* GPG와 연동하여 동작한다.
* 설치 및 사용 전에 `gpg --full-generate-key`로 먼저 자신의 GPG KEY가 준비되어 있어야 한다.
* Usage:
package install (Alpine)
apk add pass
Init: ~/.password-store (Check Key ID & Init)
gpg –list-secret-keys –keyid-format LONG pass init CD177C430FA96E23
Create New Password (single, multiline insert)
pass insert www/example pass insert –multiline www/example2
Password list
pass [list]
Password Show
pass www/example
* Github Backup Restore
backup
pass git init
pass git remote add origin git@github.com:
update
pass insert www/example3 pass git push -u –all
restore (OS 재설치 또는 다른 컴퓨터)
pass git init
pass git remote add origin git@github.com: