Как настроить git SSH-сервер на GPG Sign git push-запросы?

#git #gnupg #git-push #git-sign

#мерзавец #gnupg #git-толчок #git-знак

Вопрос:

Я пытаюсь настроить свой частный git SSH-сервер на прием push-запросов, подписанных GPG.

Я пытался следовать инструкциям Константина: https://people.kernel.org/monsieuricon/signed-git-pushes

На моем серверном компьютере я настроил config файл репозитория git на моем сервере, как рекомендовал Константин:

 [core]
        repositoryformatversion = 0
        filemode = true
        bare = true

[receive]
        advertisePushOptions = true
        certNonceSeed = "<nonce seed here>"

[push]
        gpgSign = true
 

На моем сервере и клиентском компьютере я настроил следующее:

git config push.gpgSign

git config receive.certNonceSeed "<nonce seed here>"

Я выполняю следующие команды на своем клиентском компьютере:

  1. git add -A
  2. git commit -S -m "Message here"
  3. git push origin main --signed --repo=ssh://url_of_server:/path/to/repo

Но git выводит следующее сообщение об ошибке:

fatal: the receiving end does not support --signed push

Когда я печатаю git-receive-pack ../RaiderHacks/ на своем сервере, git выводит следующее:

git-receive-пакет

Я просмотрел документацию по использованию git push man git-push man git-receive-pack и все еще в замешательстве.

Я просто пытаюсь убедиться, что я могу GPG-подписывать свои push-запросы git с помощью закрытого ключа GPG, который я установил с помощью параметра user.signingkey config

Комментарии:

1. Если это ваш частный сервер, то вы на самом деле не получаете никакой выгоды от включения подписанных git-запросов. Это сервис, который лучше всего подходит для среды общего хостинга. В целом, эти настройки должны включить для вас подписанные push-запросы — если это не работает, я предлагаю вам проверить, достаточно ли новая версия git на вашем сервере для их поддержки.

2. Спасибо за ответ, mricon. Я просто решил клонировать новый репозиторий. На этот раз ветка, в которой я был, была главной веткой по умолчанию. Итак, как только я установил для конфигурации git config push.gpgSign значение true, а для конфигурации git receive.certNonceSeed фактическое начальное значение, git push не сообщил об ошибках. На самом деле я делаю это в образовательных целях, поскольку GPG подписывает git push-запросы — это новая функция. У меня только один вопрос, как лучше всего проверить GPG подписанные git-запросы?