Skip to main content

Предоставление GIT информации о ключе для подписывания

Чтобы подписать фиксации локально, необходимо сообщить Git, что есть ключ GPG, SSH или X.509, который вы хотите использовать.

Platform navigation

Предоставление GIT информации о ключе GPG

Если вы используете ключ GPG, соответствующий удостоверению фиксации и проверенного адреса электронной почты, связанного с вашей учетной записью на GitHub.com, вы можете начать фиксации подписей и теги подписи.

Note

Если у вас нет ключа GPG, соответствующего вашему удостоверению автора фиксаций, необходимо связать адрес электронной почты с существующим ключом. Дополнительные сведения см. в разделе Связывание адреса электронной почты с ключом GPG.

Если у вас несколько ключей GPG, необходимо указать GIT, какой из них следует использовать.

  1. Откройте Терминал.

  2. Если вы ранее настроили Git для использования другого формата ключа при подписании --gpg-signс помощью этой конфигурации, не укажите этот формат, чтобы будет использоваться формат openpgp по умолчанию.

    git config --global --unset gpg.format
    
  3. Команда gpg --list-secret-keys --keyid-format=long позволяет получить длинную форму ключей GPG, для которых у вас есть открытый и закрытый ключ. Закрытый ключ необходим для подписания фиксаций или тегов.

    Shell
    gpg --list-secret-keys --keyid-format=long
    

    Note

    Для некоторых установок GPG в Linux может потребоваться gpg2 --list-keys --keyid-format LONG просмотреть список существующих ключей. В этом случае также нужно будет настроить Git для использования gpg2, выполнив git config --global gpg.program gpg2.

  4. Из списка ключей GPG скопируйте длинную форму идентификатора ключа GPG, который вы хотите использовать. В этом примере идентификатором ключа GPG является 3AA5C34371567BD2:

    Shell
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. Чтобы задать первичный ключ подписи GPG в Git, вставьте приведенный ниже текст, подставив идентификатор первичного ключа GPG, который вы хотите использовать. В этом примере идентификатором ключа GPG является 3AA5C34371567BD2:

    git config --global user.signingkey 3AA5C34371567BD2
    

    Кроме того, может потребоваться использовать вложенный ключ. В этом примере идентификатором подраздела GPG является 4BB6D45482678BE3:

    git config --global user.signingkey 4BB6D45482678BE3
    

    Если вы используете несколько ключей и вложенных ключей, следует добавить восклицательный знак ! к ключу, чтобы сообщить git, что это ваш предпочтительный ключ. Иногда может потребоваться экранировать восклицательный знак с косой чертой: \!

  6. При необходимости, чтобы настроить Git для подписывания всех фиксаций и тегов по умолчанию, введите следующую команду:

    git config --global commit.gpgsign true
    git config --global tag.gpgSign true
    

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

  7. Чтобы добавить ключ GPG в файл запуска .bashrc, выполните следующую команду:

    [ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc
    

Предоставление Git информации о ключе SSH

Существующий ключ SSH можно использовать для подписывания фиксаций и тегов или создания нового ключа специально для подписывания. Дополнительные сведения см. в разделе Создание нового ключа SSH и его добавление в ssh-agent.

Note

Проверка подписи SSH доступна в Git 2.34 или более поздней версии. Сведения об обновлении версии Git см. на веб-сайте Git.

  1. Откройте Терминал.

  2. Настройте Git, чтобы использовать SSH для подписывания фиксаций и тегов:

    git config --global gpg.format ssh
    
  3. Чтобы задать ключ подписи SSH в Git, вставьте приведенный ниже текст, заменив /PATH/TO/. SSH/KEY. PUB с путем к открытому ключу, который вы хотите использовать.

    git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB
    

Дополнительные материалы