update
This commit is contained in:
parent
edcf971b4f
commit
ce2b40c5cb
@ -4,7 +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)
|
||||
* [SSH подпись](src/GIT-SSH-sign.md)
|
||||
* [Установка TortoiseGit](src/TortoiseGit.md)
|
||||
* [GIT в Bash](src/GIT-Bash.md)
|
||||
* [VS Code](src/VS-Code.md)
|
||||
|
56
src/GIT-SSH-sign.md
Normal file
56
src/GIT-SSH-sign.md
Normal file
@ -0,0 +1,56 @@
|
||||
# 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_rsa.pub)" >> ~/.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 # Автоподпись для тэгов
|
||||
```
|
||||
|
||||
Таким образом мой файл .gitconfig теперь выглядит так:
|
||||
```
|
||||
[user]
|
||||
name = ARNik
|
||||
email = r.anikeev@gmail.com
|
||||
signingkey = ~/.ssh/id_rsa.pub
|
||||
[color]
|
||||
ui = true
|
||||
[core]
|
||||
quotepath = off # отображение русских имен файлов
|
||||
[alias]
|
||||
ll = log --oneline --graph --decorate --all
|
||||
st = status --short
|
||||
co = checkout
|
||||
br = branch
|
||||
ct = commit
|
||||
|
||||
lg = log --graph --all\
|
||||
--pretty=format:'%Cred%h%Creset -%C(auto)%d %Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
|
||||
[gpg]
|
||||
format = ssh
|
||||
[gpg "ssh"]
|
||||
allowedSignersFile = ~/.ssh/allowed_signers
|
||||
[commit]
|
||||
gpgsign = true
|
||||
[tag]
|
||||
gpgsign = true
|
||||
```
|
@ -1,35 +0,0 @@
|
||||
# SSH подпись
|
||||
|
||||
Как мы знаем в GIT можно указать любое имя пользователя и почтовый адрес.
|
||||
|
||||
Для достоверной идентификации автора существует возможность цифровой подписи коммитов.
|
||||
|
||||
Подписывать коммиты будем тем же самым ключом SSH который мы использовали ранее для работы с удаленными репозиториями.
|
||||
|
||||
<!-- https://dev.to/ccoveille/git-the-complete-guide-to-sign-your-commits-with-an-ssh-key-35bg -->
|
||||
|
||||
Используем 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
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user