Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Сведения о центрах сертификации SSH

С помощью центра сертификации SSH ваша учетная запись организации или предприятия может предоставлять сертификаты SSH, которые участники могут использовать для доступа к ресурсам посредством Git.

Сведения о центрах сертификации SSH

Сертификат SSH используется для подписания одного ключа SSH другим ключом SSH. Если вы предоставляете участникам организации подписанные сертификаты SSH с помощью центра сертификации (ЦС) SSH, этот центр можно добавить в вашу корпоративную учетную запись или организацию. Это позволит участникам организации использовать свои сертификаты для доступа к ресурсам организации.

Примечание. Чтобы использовать центры сертификации SSH, ваша организация должна использовать GitHub Enterprise Cloud. Дополнительные сведения о том, как бесплатно попробовать GitHub Enterprise Cloud, см. в разделе Настройка пробной версии GitHub Enterprise Cloud.

ЦС SSH, добавленный в организацию или корпоративную учетную запись, можно использовать для подписывания сертификатов клиента SSH для участников организации. Участники организации могут использовать подписанные сертификаты для получения доступа к репозиториям только вашей организации с помощью Git. Использование участниками сертификатов SSH для доступа к ресурсам организации можно сделать обязательным. Дополнительные сведения см. в разделах Управление центрами сертификации SSH в вашей организации и Применение политик для параметров безопасности в вашем предприятии.

Например, вы можете создать внутреннюю систему, которая будет каждое утро выдавать разработчикам новый сертификат. Каждый разработчик сможет использовать свой ежедневный сертификат для работы с репозиториями вашей организации в GitHub Enterprise Cloud. В конце дня срок действия сертификата может автоматически истекать, благодаря чему ваши репозитории будут защищены от его последующей компрометации.

Участники организации могут использовать свои подписанные сертификаты для проверки подлинности, даже если вы применяете единый вход SAML, без необходимости авторизовать подписанные сертификаты.

Если вы не сделаете SSH-сертификаты обязательными, участники организации могут продолжать использовать другие средства проверки подлинности для доступа к ресурсам вашей организации с помощью Git, включая имя пользователя и пароль, personal access tokens, а также собственные ключи SSH.

Участники не смогут использовать свои сертификаты для доступа к вилкам репозиториев, которые принадлежат их личным учетным записям.

Сведения о URL-адресах SSH с сертификатами SSH

Чтобы исключить ошибки проверки подлинности при выполнении операций Git по протоколу SSH в тех случаях, когда использование сертификатов SSH в организации обязательно, участникам организации необходимо использовать специальный URL-адрес, содержащий идентификатор организации. Это позволит клиенту и серверу упростить согласование используемого для проверки подлинности ключа на компьютере участника. Если участник использует обычный URL-адрес, начинающийся с git@github.com, клиент SSH может предложить неправильный ключ, что приведет к сбою операции.

Этот URL-адрес любой пользователь с доступом на чтение к репозиторию может найти в раскрывающемся меню Код на главной странице репозитория, щелкнув Использовать SSH.

Если использование сертификатов SSH в вашей организации не обязательно, участники могут продолжать использовать собственные ключи SSH или другие способы проверки подлинности. В таком случае подойдет как специальный URL-адрес, так и обычный URL-адрес, начинающийся с git@github.com.

Выдача сертификатов

При выдаче каждого сертификата необходимо включить расширение, указывающее, для какого пользователя GitHub Enterprise Cloud используется сертификат. Например, можно использовать команду OpenSSH ssh-keygen, заменив KEY-IDENTITY на удостоверение вашего ключа, а USERNAME — на имя пользователя GitHub Enterprise Cloud. Создаваемый сертификат будет давать право действовать от имени этого пользователя при работе с любыми ресурсами вашей организации. Прежде чем выдавать сертификат, проверьте личность пользователя.

Примечание. Чтобы использовать эти команды, необходимо обновить до OpenSSH 7.6 или более поздней версии.

$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@github.com=USERNAME ./user-key.pub

Предупреждение. После подписания и выдачи сертификата отозвать его нельзя. Обязательно настройте время существования сертификата с помощью флага -V, иначе он будет бессрочным.

Чтобы выдать сертификат для пользователя, который использует SSH для доступа к нескольким продуктам GitHub, можно включить два расширения входа и указать имя пользователя для каждого продукта. Например, следующая команда выдает сертификат для USERNAME-1 для учетной записи пользователя в GitHub Enterprise Cloud и для USERNAME-2 для учетной записи пользователя в GitHub AE или GitHub Enterprise Server на узле HOSTNAME.

$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@github.com=USERNAME-1 extension:login@HOSTNAME=USERNAME-2 ./user-key.pub

С помощью расширения source-address вы можете ограничить список IP-адресов, с которых участник организации может получать доступ к ее ресурсам. Это расширение принимает отдельные IP-адреса или диапазоны IP-адресов в нотации CIDR. Вы можете указать несколько адресов или диапазонов, разделяя значения запятыми. Дополнительные сведения см. в статье Бесклассовая адресация в Википедии.

$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@github.com=USERNAME -O source-address=COMMA-SEPARATED-LIST-OF-IP-ADDRESSES-OR-RANGES ./user-key.pub