196 lines
7.9 KiB
Markdown
196 lines
7.9 KiB
Markdown
# GNU_privacy_guard
|
||
|
||
## Установка:
|
||
|
||
### Ubuntu/Debian:
|
||
```bash
|
||
sudo apt update && sudo apt install gnupg
|
||
```
|
||
|
||
## Создание пары ключей:
|
||
<!-- Описать тут, что делают эти ключи вообще.-->
|
||
```bash
|
||
gpg --full-generate-key
|
||
```
|
||
## Параметры генерации:
|
||
<!--Добавить сюда полный список возможных вариантов!!! -->
|
||
```text
|
||
Please select what kind of key:
|
||
(1) RSA and RSA (recommended)
|
||
(9) ECC (modern)
|
||
|
||
RSA keys may be between 1024 and 4096 bits.
|
||
What keysize do you want? (3072) 4096
|
||
|
||
Key is valid for? (0) 2y
|
||
|
||
Real name: Иван Петров
|
||
Email address: ivan@example.com
|
||
Comment: work key
|
||
```
|
||
## Парольная фраза:
|
||
```text
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ Please enter the passphrase to protect your new key │
|
||
│ │
|
||
│ Passphrase: ************************************ │
|
||
│ Repeat: ************************************ │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
> Парольная фраза защищает приватный ключ. Её потеря - потеря ключа.
|
||
|
||
## Просмотр ключей:
|
||
### Список публичных ключей:
|
||
```bash
|
||
gpg --list-keys
|
||
```
|
||
### Список приватных ключей:
|
||
```bash
|
||
gpg --list-secret-keys
|
||
```
|
||
## Подробная информация с отпечатком:
|
||
```bash
|
||
gpg --fingerprint ivan@example.com
|
||
```
|
||
<!-- Описать тут, зачем нужен отпечаток-->
|
||
### Пример вывода:
|
||
```text
|
||
pub rsa4096 2026-04-02 [SC] [expires: 2028-04-01]
|
||
1234 5678 9ABC DEF0 1234 5678 9ABC DEF0 1234 5678
|
||
uid [ultimate] Иван Петров <ivan@example.com>
|
||
sub rsa4096 2026-04-02 [E] [expires: 2028-04-01]
|
||
```
|
||
## Экспорт публичного ключа
|
||
### В текстовом формате (для отправки):
|
||
```bash
|
||
gpg --armor --export ivan@example.com > public_key.asc
|
||
```
|
||
### Экспорт ключа по отпечатку:
|
||
```bash
|
||
gpg --armor --export 123456789ABCDEF0123456789ABCDEF01234567 > public_key.asc
|
||
```
|
||
> Может пригодиться, если вы сгенерировали несколько ключей, у которых одинаковое имя владельца и адрес электронной почты
|
||
### Содержимое файла public_key.asc:
|
||
```text
|
||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||
mQINBGYj8...
|
||
...
|
||
-----END PGP PUBLIC KEY BLOCK-----
|
||
```
|
||
> между началом и концом PGP PUBLIC KEY BLOCK'а находится ваш публичный ключ.
|
||
## Импорт публичного ключа
|
||
### Импорт ключа коллеги:
|
||
```bash
|
||
gpg --import colleague_public_key.asc
|
||
```
|
||
### Проверка, что ключ был импортирован:
|
||
```bash
|
||
gpg --list-keys colleague@example.com
|
||
```
|
||
## Шифрование файла
|
||
### Ассиметричное шифрование для конкретного получателя:
|
||
```bash
|
||
gpg --encrypt --recipient colleague@example.com secret.txt
|
||
```
|
||
### Результат: зашифрованный файл
|
||
```text
|
||
secret.txt.gpg
|
||
```
|
||
### Шифрование с указанием имени выходного файла:
|
||
```bash
|
||
gpg --encrypt --recipient colleague@example.com --output secret.gpg secret.txt
|
||
```
|
||
### Шифрование для нескольких получателей:
|
||
```bash
|
||
gpg --encrypt --recipient user1@example.com --recipient user2@example.com secret.txt
|
||
```
|
||
## Расшифровка файла
|
||
### С выводом на экран:
|
||
```bash
|
||
gpg --decrypt secret.gpg
|
||
```
|
||
### С сохранением в файл:
|
||
```bash
|
||
gpg --decrypt secret.gpg > secret.txt
|
||
```
|
||
### Расшифровка без вывода:
|
||
```bash
|
||
gpg --quiet --decrypt secret.txt.gpg > secret.txt
|
||
```
|
||
## При расшифровке GPG запросит парольную фразу:
|
||
```text
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ Please enter the passphrase to unlock the secret key │
|
||
│ │
|
||
│ "Иван Петров <ivan@example.com>" │
|
||
│ 4096-bit RSA key, ID 1234567890ABCDEF │
|
||
│ │
|
||
│ Passphrase: ************************************ │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
## Подпись файла:
|
||
|
||
## Удаление ключей:
|
||
### Удаление публичного ключа:
|
||
```bash
|
||
gpg --delete-keys ivan@example.com
|
||
```
|
||
### Удаление публичного ключа по отпечатку:
|
||
```bash
|
||
gpg --delete-keys DDA6896DA36A444DB86CC73FE387B6192071F089
|
||
```
|
||
### Удаление приватного ключа:
|
||
```bash
|
||
gpg --delete-secret-keys ivan@example.com
|
||
```
|
||
### Удаление обоих ключей:
|
||
```bash
|
||
gpg --delete-secret-and-public-keys ivan@example.com
|
||
```
|
||
> При наличии нескольких ключей с одним e-mail GPG спросит, какой именно удалить.
|
||
## Изменение парольной фразы:
|
||
```bash
|
||
gpg --passwd ivan@example.com
|
||
```
|
||
> Будет вызван диалог для ввода старой и новой парольной фразы.
|
||
## Структура файлов GPG:
|
||
```text
|
||
~/.gnupg/
|
||
├── pubring.kbx # связка публичных ключей
|
||
├── private-keys-v1.d/ # приватные ключи (зашифрованные)
|
||
│ └── ABC123.key
|
||
├── trustdb.gpg # база доверия
|
||
└── gpg.conf # конфигурация
|
||
```
|
||
|
||
## Резервное копирование ключей:
|
||
### Экспорт приватного ключа:
|
||
```bash
|
||
gpg --armor --export-secret-keys ivan@example.com > private_key.asc
|
||
```
|
||
### Экспорт публичного ключа:
|
||
```bash
|
||
gpg --armor --export ivan@example.com > public_key.asc
|
||
```
|
||
### Проверка содержимого экспортированного ключа:
|
||
```bash
|
||
gpg --list-packets public_key.asc | grep "keyid"
|
||
```
|
||
## Памятка: что точно нельзя делать:
|
||
- Никогда не передавайте приватный ключ другим людям;
|
||
- Не храните парольную фразу рядом с приватным ключом;
|
||
- Не используйте пустую парольную фразу для ключей, работающих с важными данными;
|
||
- Не удаляйте старый ключ, пока не убедитесь, что все данные с ним расшифрованы.
|
||
## Восстановление после потери парольной фразы:
|
||
Если парольная фраза утеряна:
|
||
1. Смириться с потерей - ключ восстановить невозможно
|
||
2. Сгенерировать новую пару ключей
|
||
```bash
|
||
gpg --full-generate-key
|
||
```
|
||
3. Сообщить новый публичный ключ всем, кто отправлял вам зашифрованные данные
|
||
4. Удалить старый ключ
|
||
```bash
|
||
gpg --delete-secret-and-public-keys old@example.com
|
||
```
|
||
Файлы, зашифрованные старым ключом, расшифровать больше не получится. |