# SSH подпись

Как мы знаем в GIT можно указать любое имя пользователя и почтовый адрес.

Для достоверной идентификации автора существует возможность цифровой подписи коммитов.

Подписывать коммиты будем тем же самым ключом SSH который мы использовали ранее для работы с удаленными репозиториями.

<!-- https://dev.to/ccoveille/git-the-complete-guide-to-sign-your-commits-with-an-ssh-key-35bg -->
<!-- https://developer.1password.com/docs/ssh/git-commit-signing/ -->


Чтобы верифицировать подписи локально, нужно создать файл с доверенными ключами...

```
echo "$(git config --get user.name) $(cat ~/.ssh/id_ed25519.pub)" >> ~/.ssh/allowed_signers
```

и указать на него GIT:
```
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers
```



Добавляем соответствующие настройки в GIT:
```
git config --global gpg.format ssh                                      # Включаем SSH для подписи
git config --global user.signingkey ~/.ssh/id_rsa.pub                   # Добавляем открытый ключ
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers   # Добавляем файл доверенных подписей
git config --global commit.gpgsign true                                 # Автоподпись для коммитов
git config --global tag.gpgsign true                                    # Автоподпись для тэгов
```