Настройка Git для использования GPG-ΠΊΠ»ΡŽΡ‡Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ локально, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Git, ΠΊΠ°ΠΊΠΎΠΉ GPG-ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Π΅Π· этой настройки Git Π½Π΅ смоТСт автоматичСски ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ваши измСнСния, Π΄Π°ΠΆΠ΅ Ссли ΠΊΠ»ΡŽΡ‡ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ GitVerse.

1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ GPG-ΠΊΠ»ΡŽΡ‡ с ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ:

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

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ строка Π²Ρ€ΠΎΠ΄Π΅:

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

Если ΠΊΠ»ΡŽΡ‡Π° Π½Π΅Ρ‚ β€” ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ GPG-ΠΊΠ»ΡŽΡ‡Π° .

πŸ” Для Linux: Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ gpg2, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

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

И настройтС Git:

git config --global gpg.program gpg2

2. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Git, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, подставив ваш GPG-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 3AA5C34371567BD2):

git config --global user.signingkey 3AA5C34371567BD2

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ (subkey) вмСсто основного ΠΊΠ»ΡŽΡ‡Π°, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΅Π³ΠΎ ID (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 4BB6D45482678BE3):

git config --global user.signingkey 4BB6D45482678BE3

3. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подпись ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ Git подписывал всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

git config --global commit.gpgsign true
git config --global tag.gpgSign true

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

4. (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) Настройка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ gpg: signing failed: Inappropriate ioctl for device, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„Π°ΠΉΠ» ~/.bashrc (ΠΈΠ»ΠΈ ~/.zshrc) строку:

[ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ:

source ~/.bashrc

5. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС настроСно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

git config --global user.signingkey
git config --global commit.gpgsign
git config --global tag.gpgSign

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ:

3AA5C34371567BD2
true
true

6. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ подписания ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ тСстовый ΠΊΠΎΠΌΠΌΠΈΡ‚:

git commit -m "ВСстовая подпись"

Git автоматичСски ΠΏΠΎΠ΄ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Π³ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ подпись:

git log --show-signature -1

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ вашим GPG-ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, ΠΈ Π² GitVerse ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π’Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½, Ссли ΠΊΠ»ΡŽΡ‡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ваш ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию вашСго ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈ passphrase β€” ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ для подписи ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств.

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