Skip to main content

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

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

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

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

ЦС SSH, добавленный в организацию или корпоративную учетную запись, можно использовать для подписывания сертификатов клиента SSH для участников организации. Участники организации могут использовать подписанные сертификаты для получения доступа к репозиториям только вашей организации с помощью Git. Использование участниками сертификатов SSH для доступа к ресурсам организации можно сделать обязательным. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Управление центрами сертификации SSH в вашей организации](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-ssh-certificate-authorities-for-your-enterprise)".

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

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

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

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

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

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

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

При выдаче каждого сертификата необходимо включить расширение, указывающее, для какого пользователя GitHub Enterprise Server используется сертификат. Например, можно использовать команду OpenSSH ssh-keygen , заменив KEY-IDENTITY удостоверением ключа и именем ПОЛЬЗОВАТЕЛЯ GitHub Enterprise Server. Создаваемый сертификат будет давать право действовать от имени этого пользователя при работе с любыми ресурсами вашей организации. Прежде чем выдавать сертификат, проверьте личность пользователя.

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

ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@HOSTNAME=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@HOSTNAME=USERNAME -O source-address=COMMA-SEPARATED-LIST-OF-IP-ADDRESSES-OR-RANGES ./user-key.pub