Skip to main content

Sobre autoridades certificadas de SSH

Com uma autoridade certificada SSH, a organização ou conta corporativa pode oferecer certificados SSH para os integrantes usarem ao acessar seus recursos com o Git.

Sobre autoridades certificadas de SSH

Um certificado SSH é um mecanismo utilizado para uma chave SSH assinar outra chave SSH. Se você usa uma autoridade certificada (CA) SSH para fornecer certificados SSH aos integrantes da organização, você pode adicionar a CA em sua conta corporativa ou organização para permitir que integrantes da organização usem os certificados deles para acessar os recursos da organização.

Observação: para usar autoridades de certificado SSH, sua organização precisa usar o GitHub Enterprise Cloud. Para obter mais informações sobre como você pode experimentar o GitHub Enterprise Cloud gratuitamente, confira "Como configurar uma avaliação do GitHub Enterprise Cloud".

Depois de adicionar uma CA SSH à sua organização ou conta corporativa, você pode usar a CA para assinar certificados SSH de cliente para integrantes da organização. Membros da organização podem usar os certificados assinados para acessar os repositórios da organização.

Os certificados adicionados à sua empresa concedem acesso a todas as organizações pertencentes à sua conta corporativa. Para obter mais informações, consulte "Aplicando políticas para configurações de segurança na sua empresa".

Você pode exigir que os integrantes usem certificados SSH para acessar os recursos da organização, a menos que o SSH esteja desabilitado no seu repositório.

Opcionalmente, você pode exigir que os integrantes utilizem certificados SSH para acessar recursos da organização. Para obter mais informações, confira "Gerenciar autoridades certificadas de SSH da organização" e "Aplicando políticas para configurações de segurança na sua empresa."

Por exemplo, você pode desenvolver um sistema interno que emite um novo certificado para seus desenvolvedores todas as manhãs. Cada desenvolvedor pode usar o certificado diário para trabalhar nos repositórios da organização no GitHub Enterprise Cloud. No final do dia, o certificado pode expirar automaticamente, protegendo seus repositórios caso o certificado seja adulterado mais tarde.

Os membros da organização podem usar seus certificados assinados para autenticação mesmo que você tenha imposto o SSO (logon único) do SAML, sem a necessidade de autorizar os certificados assinados.

A menos que você exija certificados SSH, os membros da organização podem continuar usando outros meios de autenticação para acessar os recursos da organização no Git, como o nome de usuário e a senha, personal access tokens e chaves SSH próprias.

Os membros não podem usar o certificado para acessar bifurcações dos repositórios da organização, a menos que a empresa tenha permitido que as ACs (Autoridades de Certificação) SSH acessem repositórios de propriedade do usuário. Para obter mais informações, confira "Sobre autoridades certificadas de SSH".

Sobre os URLs do SSH com certificados SSH

Se sua organização exigir certificados SSH, para evitar erros de autenticação, os integrantes da organização deverão usar um URL especial que inclua o ID da organização quando executar operações Git por meio do SSH. Este URL especial permite que o cliente e servidor negociem mais facilmente qual chave no computador do integrante deverá ser usada para autenticação. Se um membro usar a URL normal, que começa com git@github.com, o cliente SSH poderá oferecer a chave errada, causando uma falha na operação.

Qualquer pessoa com acesso de leitura no repositório pode encontrar essa URL selecionando o menu suspenso Código na página principal do repositório e clicando em Usar o SSH.

Se sua organização não exigir certificados SSH, os integrantes poderão continuar usando suas próprias chaves SSH ou outros meios de autenticação. Nesse caso, a URL especial ou a URL normal, que começa com git@github.com, funcionará.

Emitindo certificados

A cada emissão de certificado, você deve incluir uma extensão especificando para qual usuário do GitHub Enterprise Cloud é o certificado. Você pode referenciar o usuário usando seu identificador de login ou sua ID de usuário. Por exemplo, você pode usar o comando ssh-keygen do OpenSSH, substituindo KEY-IDENTITY pela identidade da sua chave e USERNAME por um nome de usuário ou ID de usuário do GitHub Enterprise Cloud. O certificado que você gerar será autorizado a agir em nome desse usuário para qualquer um dos recursos da sua organização. Certifique-se de validar a identidade do usuário antes de emitir o certificado.

Observação: você precisa fazer a atualização para o OpenSSH 7.6 ou posterior para usar esses comandos.

Para usar o login para identificar o usuário, use extension:login:

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

Aviso: depois que um certificado for assinado e emitido, o certificado não poderá ser revogado.

Para ACs carregadasantes de 27 de março de 2024, você deve usar o sinalizador -V para configurar um tempo de vida de menos de 366 sias para o certificado. Para ACs carregadas antes desta data, o sinalizador -V é opcional e você pode criar certificados que são irrevogáveis e válidos para sempre.

Para emitir um certificado para alguém que utiliza SSH para acessar vários produtos de GitHub, você pode incluir duas extensões de login para especificar o nome de usuário para cada produto. Por exemplo, o comando a seguir emitiria um certificado USERNAME-1 na conta do usuário do GitHub Enterprise Cloud e USERNAME-2 na conta do usuário do GitHub Enterprise Server em 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

Você pode restringir os endereços IP dos quais um membro da organização pode acessar os recursos da sua organização usando uma extensão source-address. A extensão aceita um endereço IP específico ou um intervalo de endereços IP usando a notação CIDR. É possível especificar vários endereços ou intervalos separando os valores com vírgulas. Para obter mais informações, confira "Roteamento entre domínios sem classes" na Wikipédia.

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