diff --git a/README.md b/README.md index addaece..a703bc8 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ * [Установка GIT в windows](src/GIT-install-win.md) * [Конфигурация GIT](src/GIT-config.md) * [SSH авторизация по ключам](src/SSH-key-auth-win.md) +* [SSH подпись](src/GIT-ssh-sign.md) * [Установка TortoiseGit](src/TortoiseGit.md) * [GIT в Bash](src/GIT-Bash.md) * [VS Code](src/VS-Code.md) diff --git a/src/GIT-ssh-sign.md b/src/GIT-ssh-sign.md new file mode 100644 index 0000000..4c9fcaa --- /dev/null +++ b/src/GIT-ssh-sign.md @@ -0,0 +1,35 @@ +# SSH подпись + +Как мы знаем в GIT можно указать любое имя пользователя и почтовый адрес. + +Для достоверной идентификации автора существует возможность цифровой подписи коммитов. + +Подписывать коммиты будем тем же самым ключом SSH который мы использовали ранее для работы с удаленными репозиториями. + + + +Используем SSH для подписи: +```sh +git config --global gpg.format ssh +``` + +Добавляем открытый ключ для подписи: +```sh +git config --global user.signingkey ~/.ssh/id_rsa.pub +``` + +Чтобы верифицировать подписи локально, нужно создать файл с доверенными ключами... +```sh +echo "$(git config --get user.name) namespaces=\"git\" $(cat ~/.ssh/id_ed25519.pub)" >> ~/.ssh/allowed_signers +``` + +и указать на него GIT: +```sh +git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers +``` + +Для автоматической подписи коммитов и тэгов: +```sh +git config --global commit.gpgsign true +git config --global tag.gpgsign true +``` \ No newline at end of file