Go to file
2026-04-02 23:14:36 +03:00
README.md Обновить README.md 2026-04-02 23:14:36 +03:00

GNU_privacy_guard

Установка:

Ubuntu/Debian:

sudo apt update && sudo apt install gnupg

Создание пары ключей:

gpg --full-generate-key

Параметры генерации:

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

Парольная фраза:

┌─────────────────────────────────────────────────────────┐
│ Please enter the passphrase to protect your new key     │
│                                                         │
│ Passphrase: ************************************        │
│ Repeat:     ************************************        │
└─────────────────────────────────────────────────────────┘

Парольная фраза защищает приватный ключ. Её потеря - потеря ключа.

Просмотр ключей:

Список публичных ключей:

gpg --list-keys

Список приватных ключей:

gpg --list-secret-keys

Подробная информация с отпечатком:

gpg --fingerprint ivan@example.com

Пример вывода:

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]

Экспорт публичного ключа

В текстовом формате (для отправки):

gpg --armor --export ivan@example.com > public_key.asc

Экспорт ключа по отпечатку:

gpg --armor --export 123456789ABCDEF0123456789ABCDEF01234567 > public_key.asc

Может пригодиться, если вы сгенерировали несколько ключей, у которых одинаковое имя владельца и адрес электронной почты

Содержимое файла public_key.asc:

-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGYj8...
...
-----END PGP PUBLIC KEY BLOCK-----

между началом и концом PGP PUBLIC KEY BLOCK'а находится ваш публичный ключ.

Импорт публичного ключа

Импорт ключа коллеги:

gpg --import colleague_public_key.asc

Проверка, что ключ был импортирован:

gpg --list-keys colleague@example.com

Шифрование файла

Ассиметричное шифрование для конкретного получателя:

gpg --encrypt --recipient colleague@example.com secret.txt

Результат: зашифрованный файл

secret.txt.gpg

Шифрование с указанием имени выходного файла:

gpg --encrypt --recipient colleague@example.com --output secret.gpg secret.txt

Шифрование для нескольких получателей:

gpg --encrypt --recipient user1@example.com --recipient user2@example.com secret.txt

Расшифровка файла

С выводом на экран:

gpg --decrypt secret.gpg

С сохранением в файл:

gpg --decrypt secret.gpg > secret.txt

Расшифровка без вывода:

gpg --quiet --decrypt secret.txt.gpg > secret.txt

При расшифровке GPG запросит парольную фразу:

┌─────────────────────────────────────────────────────────┐
│ Please enter the passphrase to unlock the secret key    │
│                                                         │
│ "Иван Петров <ivan@example.com>"                        │
│ 4096-bit RSA key, ID 1234567890ABCDEF                   │
│                                                         │
│ Passphrase: ************************************        │
└─────────────────────────────────────────────────────────┘

Подпись файла

Удаление ключей

Изменение парольной фразы

Структура файлов GPG

Резервное копирование ключей