Os utilizadores e as contas de serviço podem usar chaves públicas SSH para fazer a autenticação em repositórios do Secure Source Manager. Esta página descreve como gerar um par de chaves SSH e, em seguida, adicioná-lo como método de autenticação na interface Web do Secure Source Manager.
O Secure Source Manager suporta os tipos de chaves SSH RSA, ECDSA e Ed25519.
Funções necessárias
Para receber as autorizações de que precisa para fazer a autenticação através de chaves públicas de SSH, peça ao seu administrador que lhe conceda as seguintes funções de IAM:
-
Para adicionar uma chave SSH para um utilizador:
Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) na instância do Secure Source Manager -
Para adicionar uma chave SSH para uma conta de serviço:
-
Gestor de instâncias do Secure Source Manager (
roles/securesourcemanager.instanceManager) na instância do Secure Source Manager -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço
-
Gestor de instâncias do Secure Source Manager (
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para a autenticação através de chaves públicas de SSH. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
As seguintes autorizações são necessárias para a autenticação através de chaves públicas SSH:
-
na instância do Secure Source Managersecuresourcemanager.sshkeys.createAny -
Para atribuir uma chave SSH a uma conta de serviço:
na conta de serviçoiam.serviceAccounts.actAs
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Para obter informações sobre a concessão de funções do Secure Source Manager, consulte os artigos Controlo de acesso com o IAM e Conceda aos utilizadores acesso à instância.
Gere um par de chaves
Um par de chaves SSH consiste numa chave privada que reside no seu sistema local e numa chave pública que regista no Google Cloud.
Linux ou macOS
Instale o OpenSSH no seu sistema local.
Num comando, introduza o seguinte comando:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Onde:
- USER_EMAIL é o seu endereço de email.
- KEY_TYPE é uma das seguintes opções:
rsa,ecdsaoued25519.
Por exemplo:
ssh-keygen -t rsa -C "user@example.com"Quando lhe for pedido, introduza uma localização e um nome de ficheiro para o ficheiro de chave pública. Para aceitar a localização e o nome do ficheiro predefinidos, prima Enter.
Quando lhe for pedido, deixe a frase de acesso vazia e prima Enter.
Windows
Se não o tiver, instale o cliente OpenSSH (incluído no Windows 10 e posterior) e o Git para Windows no seu sistema local. As instruções seguintes usam o OpenSSH e o Git para Windows.
Numa janela do PowerShell ou da linha de comandos, execute o seguinte comando:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Onde:
- USER_EMAIL é o seu endereço de email.
- KEY_TYPE é uma das seguintes opções:
rsa,ecdsaoued25519.
Por exemplo:
ssh-keygen -t rsa -C "user@example.com"Quando lhe for pedido, introduza uma localização e um nome de ficheiro para o ficheiro de chave pública. Para aceitar a localização e o nome de ficheiro predefinidos (`%USERPROFILE%.ssh`), prima Enter.
Quando lhe for pedido, deixe a frase de acesso vazia e prima Enter.
Adicione a chave SSH ao agente SSH
Para usar o par de chaves SSH que gerou, adicione a chave ao agente SSH. Se não guardou a chave na localização predefinida, adicioná-la ao agente SSH ajuda o SSH a localizar a chave.
Linux ou macOS
Inicie o
ssh-agentem segundo plano:eval "$(ssh-agent -s)"O comando devolve o ID do processo do agente (PID), por exemplo:
Agent pid 3245Consoante o seu ambiente, pode ter de usar um comando diferente, por exemplo:
- Para usar o acesso root, execute
sudo -s -Hantes de iniciarssh-agent. - Para executar o
ssh-agentdiretamente, useexec ssh-agent bashouexec ssh-agent zsh.
- Para usar o acesso root, execute
Adicione a sua chave privada de SSH ao
ssh-agent.ssh-add ~/.ssh/FILENAMEEm que
FILENAMEé o nome do ficheiro de chave privada, por exemplo,id_rsaouid_ed25519.
Windows
Iniciar
ssh-agent.Se estiver a usar o Git Bash, inicie o
ssh-agent:eval "$(ssh-agent -s)"Se estiver a usar o PowerShell ou a Linha de comandos, inicie o serviço
ssh-agent. No PowerShell, execute:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
Adicione a sua chave privada de SSH ao
ssh-agent.Se estiver a usar o Git Bash:
ssh-add ~/.ssh/FILENAMESe estiver a usar o PowerShell ou a Linha de comandos:
ssh-add $env:USERPROFILE\.ssh\FILENAME
Em que
FILENAMEé o nome do ficheiro de chave privada, por exemplo,id_rsaouid_ed25519.
Adicione chaves SSH para utilizadores
- Na interface Web do Secure Source Manager, na página da instância ou do repositório, clique no menu mais opções.
Clique em Chaves SSH do utilizador.
A página Chaves SSH do utilizador é aberta e é apresentada uma lista de todas as chaves existentes que criou.
Na página Chaves SSH do utilizador, clique em Adicionar chave.
Na página Adicionar chave SSH, introduza os seguintes valores para a sua chave:
- Título: adicione um título descritivo para a chave.
Chave pública de SSH: cole a string da chave pública. Para obter a string da chave pública, abra o ficheiro da chave pública (
FILENAME.pub) num editor de texto ou execute um dos seguintes comandos:Linux ou macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubSubstitua
FILENAMEpelo nome do ficheiro de chaves.
Pode usar chaves SSH para se autenticar em qualquer repositório do Secure Source Manager, desde que tenha as autorizações necessárias nesse repositório.
Adicione chaves SSH para contas de serviço
Para permitir o acesso programático ao seu repositório, pode adicionar uma chave SSH para uma conta de serviço.
- Se ainda não tiver uma conta de serviço que queira usar, crie uma conta de serviço.
- Na interface Web do Secure Source Manager, clique no menu mais opções.
- Clique em Chaves SSH da conta de serviço. A página Chaves SSH da conta de serviço é aberta e é apresentada uma lista de todas as chaves existentes que adicionou.
- Na página Chaves SSH da conta de serviço, clique em Adicionar chave.
Na página Adicione a chave SSH da conta de serviço, introduza os seguintes valores para a sua chave:
- Title: um título descritivo para a chave
Conta de serviço: o email da conta de serviço para a conta de serviço que quer usar a chave SSH no formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.comOnde
SA_NAMEé o nome da conta de serviço.PROJECT_IDé o ID do projeto no qual a conta de serviço foi criada.
Chave pública de SSH: a sua chave pública de SSH. Consulte o artigo Gere um par de chaves para obter informações sobre como gerar um par de chaves SSH.
Se a conta de serviço não estiver no mesmo projeto que a sua instância do Secure Source Manager, conceda ao agente de serviço do Secure Source Manager um dos seguintes papéis ou autorizações na conta de serviço que quer usar:
- Autorização de
iam.serviceAccounts.signJwt - Função criador de tokens de contas de serviço (
roles/iam.serviceAccountTokenCreator)
Execute o seguinte comando para adicionar uma política de IAM à sua conta de serviço do Secure Source Manager para lhe conceder a função de criador de tokens de conta de serviço.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"Em que SERVICE_ACCOUNT é a conta de serviço que quer usar e INSTANCE_PROJECT_NUMBER é o número do projeto da sua instância do Secure Source Manager.
O SERVICE_ACCOUNT deve ser formatado como um ID de conta de serviço numérico ou como um email, da seguinte forma: 123456789876543212345 ou my-iam-account@somedomain.com.
- Autorização de