Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GPG-ΠΊΠ»ΡŽΡ‡Π° для подписи ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² GitVerse, Π²Π°ΠΌ понадобится GPG-ΠΊΠ»ΡŽΡ‡. Если Ρƒ вас Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ. Π­Ρ‚Π° инструкция ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для всСх основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм: macOS, Windows ΠΈ Linux.

1. Установка GPG

GPG (GNU Privacy Guard) β€” инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPG-ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ установлСн Π½Π° вашСй систСмС:

  • macOS: GPG Π½Π΅ установлСн ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. УстановитС Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт GnuPG ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ brew install gnupg;
  • Windows: Если Ρƒ вас установлСн Git for Windows, GPG ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½. Π˜Π½Π°Ρ‡Π΅ скачайтС GnuPG для Windows;
  • Linux: УстановитС Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€.
    sudo apt install gnupg    # Ubuntu/Debian
    sudo dnf install gnupg    # Fedora

ПослС установки ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» (macOS/Linux) ΠΈΠ»ΠΈ Git Bash (Windows).

2. ГСнСрация ΠΊΠ»ΡŽΡ‡Π°

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄:

gpg --full-generate-key    # для GPG 2.1.17 ΠΈ Π½ΠΎΠ²Π΅Π΅ (рСкомСндуСтся)

Если ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ распознаСтся (особСнно Π½Π° старых систСмах Linux), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

gpg --default-new-key-algo rsa4096 --gen-key

3. Настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠ»ΡŽΡ‡Π°

БистСма запросит нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Π’ΠΈΠΏ ΠΊΠ»ΡŽΡ‡Π°

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ (1) RSA and RSA β€” это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для подписи ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡Π°

ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” 4096 Π±ΠΈΡ‚ β€” для максимальной бСзопасности.

Π‘Ρ€ΠΎΠΊ дСйствия

НаТмитС Enter, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ бСссрочным. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ рСгулярно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ срок.

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ПослС отобраТСния сводки Π½Π°ΠΆΠΌΠΈΡ‚Π΅ O (OK), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ.

4. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π’Π°ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ ввСсти:

  • Имя;
  • Email-адрСс β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΌ email Π² вашСм ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ GitVerse;
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ).

Π’Π°ΠΆΠ½ΠΎ: Если email Π½Π΅ совпадаСт с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ Π² GitVerse, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π΄Π°ΠΆΠ΅ Ссли подпись тСхничСски ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°.

5. Π—Π°Π΄Π°ΠΉΡ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ passphrase

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ вашСго ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Он понадобится ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ подписи ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сгСнСрированного ΠΊΠ»ΡŽΡ‡Π°

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ создан:

gpg --list-secret-keys --keyid-format=long

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ строку Π²Ρ€ΠΎΠ΄Π΅:

sec   rsa4096/3AA5C34371567BD2 2025-12-18 [SC]

Π—Π΄Π΅ΡΡŒ 3AA5C34371567BD2 β€” это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ вашСго ΠΊΠ»ΡŽΡ‡Π° (GPG ID).

Для Linux: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дистрибутивах ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ gpg2. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹ΡˆΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:

gpg2 --list-keys --keyid-format=long

И настройтС Git Π½Π° использованиС gpg2:

git config --global gpg.program gpg2

7. Экспорт ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ASCII-armored:

gpg --armor --export 3AA5C34371567BD2

РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ --export-options export-minimal, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ:

gpg --armor --export --export-options export-minimal 3AA5C34371567BD2

Π’Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

-----BEGIN PGP PUBLIC KEY BLOCK-----

...
-----END PGP PUBLIC KEY BLOCK-----

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ вСсь Π±Π»ΠΎΠΊ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ строки с BEGIN ΠΈ END.

8. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Π² GitVerse

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки своСго профиля Π² GitVerse.
  2. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» ΠšΠ»ΡŽΡ‡ΠΈ SSH/GPG.
  3. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠšΠ»ΡŽΡ‡ΠΈ GPG.
  4. НаТмитС Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ GPG.
  5. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ скопированный ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.
  6. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅.

ПослС этого всС Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, подписанныС этим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Β«Π’Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Β».

Π’Π°ΠΆΠ½ΠΎ: Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ GitVerse вСрификация зависит ΠΎΡ‚ наличия ΠΊΠ»ΡŽΡ‡Π° Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅. Если Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡, всС подписанныС ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ станут Π½Π΅Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ.

9. Настройка Git для автоматичСской подписи

Π§Ρ‚ΠΎΠ±Ρ‹ Git автоматичСски подписывал всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

git config --global user.signingkey 3AA5C34371567BD2
git config --global commit.gpgsign true

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ git commit Git Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠ»ΡŽΡ‡ для подписи.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Ссли Π°Π²Ρ‚ΠΎΠΏΠΎΠ΄ΠΏΠΈΡΡŒ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°):

git commit -S -m "Π’Π°Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚"

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈ passphrase Π² Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΌ мСстС. Π‘Π΅Π· Π½ΠΈΡ… Π²Ρ‹ Π½Π΅ смоТСтС ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с этого устройства.

Π’Ρ‹ нашли Ρ‡Ρ‚ΠΎ искали?