From ce2b40c5cbdfd0162c4e9b5e465d6357b341ed5a Mon Sep 17 00:00:00 2001 From: ARNik Date: Thu, 7 Nov 2024 04:05:43 +0300 Subject: [PATCH] update --- README.md | 2 +- src/GIT-SSH-sign.md | 56 +++++++++++++++++++++++++++++++++++++++++++++ src/GIT-ssh-sign.md | 35 ---------------------------- 3 files changed, 57 insertions(+), 36 deletions(-) create mode 100644 src/GIT-SSH-sign.md delete mode 100644 src/GIT-ssh-sign.md diff --git a/README.md b/README.md index a703bc8..c08e406 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/src/GIT-SSH-sign.md b/src/GIT-SSH-sign.md new file mode 100644 index 0000000..8ef7c44 --- /dev/null +++ b/src/GIT-SSH-sign.md @@ -0,0 +1,56 @@ +# SSH подпись + +Как мы знаем в GIT можно указать любое имя пользователя и почтовый адрес. + +Для достоверной идентификации автора существует возможность цифровой подписи коммитов. + +Подписывать коммиты будем тем же самым ключом SSH который мы использовали ранее для работы с удаленными репозиториями. + + + + + +Чтобы верифицировать подписи локально, нужно создать файл с доверенными ключами... + +``` +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 +``` \ No newline at end of file diff --git a/src/GIT-ssh-sign.md b/src/GIT-ssh-sign.md deleted file mode 100644 index 4c9fcaa..0000000 --- a/src/GIT-ssh-sign.md +++ /dev/null @@ -1,35 +0,0 @@ -# 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