Partilhar via


InstallSSHKey@0 - Instalar a tarefa da chave SSH v0

Utilize esta tarefa num oleoduto para instalar uma chave SSH antes de um passo de construção ou de lançamento.

Syntax

# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    #sshPublicKey: # string. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key. 
  # Advanced
    #addEntryToConfig: false # boolean. Add entry to SSH config. Default: false.
    #configHostAlias: # string. Required when addEntryToConfig = true. Alias. 
    #configHostname: # string. Required when addEntryToConfig = true. Host name. 
    #configUser: # string. Optional. Use when addEntryToConfig = true. User. 
    #configPort: # string. Optional. Use when addEntryToConfig = true. Port.
# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    #sshPublicKey: # string. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.
# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    sshPublicKey: # string. Required. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.
# Install SSH Key v0
# Install an SSH key prior to a build or release.
- task: InstallSSHKey@0
  inputs:
    hostName: # string. Required. Known Hosts Entry. 
    sshPublicKey: # string. Required. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.

Entradas

knownHostsEntry - Entrada conhecida dos anfitriões
Pseudónimo de entrada: hostName. string. Obrigatório.

Especifica a entrada da chave SSH para o ficheiro known_hosts.


sshPublicKey - Chave pública SSH
string.

Opcional. Especifica o conteúdo da chave SSH pública.


sshPublicKey - Chave pública SSH
string. Obrigatório.

Especifica o conteúdo da chave SSH pública.


sshPassphrase - SSH Passphrase
string.

Opcional. Especifica a frase-passe para a chave SSH, se houver.


sshKeySecureFile - Chave SSH
string. Obrigatório.

Especifica a chave SSH que foi carregada para Secure Files instalar no agente.


addEntryToConfig - Adicionar entrada à SSH config
boolean. Valor predefinido: false.

Opcional. Adiciona uma entrada relacionada com a chave que foi instalada no ficheiro SSH config. O ficheiro chave estará disponível para todas as tarefas subsequentes.


configHostAlias - Pseudónimo
string. Obrigatório quando addEntryToConfig = true. .

Especifica o nome da entrada SSH config.


configHostname - Nome do anfitrião
string. Obrigatório quando addEntryToConfig = true. .

Especifica a propriedade do nome anfitrião da entrada SSH config.


configUser - Utilizador
string. Opcional. Utilizar quando addEntryToConfig = true.

Especifica a propriedade do nome de utilizador da entrada SSH config.


configPort - Porto
string. Opcional. Utilizar quando addEntryToConfig = true.

Especifica a porta da entrada de config SSH.


hostName - Entrada conhecida dos anfitriões
string. Obrigatório.

Especifica a entrada da chave SSH para o ficheiro known_hosts.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefa. Para obter mais informações, consulte opções de Controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Utilize esta tarefa num oleoduto para instalar uma chave SSH antes de um passo de construção ou de lançamento.

Nota

Esta tarefa exigia git Bash para windows no agente.

Utilização e boas práticas

Se instalar uma chave SSH nas piscinas hospedadas, em passos posteriores no seu oleoduto, pode ligar-se a um sistema remoto no qual a chave pública correspondente já está no lugar. Por exemplo, pode ligar-se a um repositório git ou a um VM em Azure.

Recomendamos que não passe na sua chave pública como texto simples para a configuração da tarefa. Em vez disso, desave uma variável secreta no seu oleoduto para o conteúdo do seu mykey.pub ficheiro. Em seguida, chame a variável na sua definição de gasoduto como $(myPubKey). Para a parte secreta da sua chave, utilize a biblioteca Secure File em Pipelines Azure.

Para criar a sua tarefa, utilize o seguinte exemplo de uma tarefa de Chave SSH de instalação bem configurada:

steps:
- task: InstallSSHKey@0
  displayName: 'Install an SSH key'
  inputs:
    knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
    sshPublicKey: '$(myPubKey)'
    sshKeySecureFile: 'id_rsa'

Nota

A sua chave pública deve ser adicionada à organização do repositório; caso contrário, haverá problemas de acesso. Para GitHub, siga o guia acima. Para serviços Azure DevOps, utilize adicionar a chave pública aos Serviços Azure DevOps/TFS.

Instalação de várias chaves SSH no mesmo trabalho de pipeline

Quando se utiliza mais de uma chave no mesmo trabalho de pipeline, a primeira é utilizada por defeito. Para poder utilizar a chave desejada ao estabelecer uma ligação SSH, pode utilizar a Advanced secção da InstallSSHKey tarefa para definir os seguintes parâmetros: addEntryToConfig, configHostAlias, , configHostnamee configUserconfigPort.

Estes parâmetros permitem-lhe adicionar um anfitrião ao ficheiro SSH config (por exemplo, /root/.ssh/config para Linux) de forma a usá-lo em scripts personalizados através de um pseudónimo.

Após a construção estar concluída, a tarefa tentará restaurar o ficheiro original de config SSH. Se não houver nenhum ficheiro SSH config inicialmente, então o hospedeiro é removido do agente.

Um exemplo de instalação de várias chaves SSH. O caso com vários repos do GitHub e a sua própria chave para cada um:

pool: <Some Agent Pool>

steps:
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: $(known_host)
    sshPublicKey: $(first_public_key)
    sshKeySecureFile: $(first_private_key)
    addEntryToConfig: true
    configHostAlias: <first-host-alias>
    configHostname: github.com
    configUser: git
  displayName: Install First Repo SSH Key

- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: $(known_host)
    sshPublicKey: $(second_public_key)
    sshKeySecureFile: $(second_private_key)
    addEntryToConfig: true
    configHostAlias: <second-host-alias>
    configHostname: github.com
    configUser: git
  displayName: Install Second Repo SSH Key

- bash: git clone git@<first-host-alias>:<owner>/<first-repo>.git
  displayName: Clone First Repo

- bash: git clone git@<second-host-alias>:<owner>/<second-repo>.git
  displayName: Clone Second Repo

Relacionados GitHub docs.

Exemplos

Configuração de exemplo usando GitHub

Esta secção descreve como usar um repositório privado do GitHub com YAML de dentro dos Oleodutos Azure.

Se tem um repositório que não quer expor à comunidade de código aberto, uma prática comum é tornar o repositório privado. No entanto, uma ferramenta ci/CD como a Azure DevOps precisa de acesso ao repositório se quiser utilizar a ferramenta para gerir o repositório. Para dar acesso a Azure DevOps, poderá necessitar de uma chave SSH para autenticar o acesso ao GitHub.

Aqui estão os passos para usar uma chave SSH para autenticar o acesso ao GitHub:

  1. Gere um par de chaves para utilizar para autenticar o acesso de GitHub a Azure DevOps:

    1. Em GitBash, executar o seguinte comando:

      ssh-keygen -t rsa
      
    2. Insira um nome para o par de chaves SSH. No nosso exemplo, usamos o myKey.

      Screenshot do pedido de GitBash para introduzir um nome para o seu par de chaves SSH.

    3. (Opcional) Pode introduzir uma palavra-passe para encriptar a sua chave privada. Este passo é opcional. A utilização de uma palavra-passe é mais segura do que não utilizar uma.

      Screenshot do pedido de GitBash para introduzir uma palavra-passe para o seu par de chaves SSH.

      ssh-keygen cria os pares de chaves SSH, e aparece a seguinte mensagem de sucesso:

      Screenshot da mensagem GitBash que mostra que um par de chaves SSH foi criado.

    4. No Windows Explorador de Ficheiros, verifique o seu novo par de chaves:

      Screenshot dos ficheiros de pares chave no Windows Explorador de Ficheiros.

  2. Adicione a chave pública ao repositório GitHub. (A chave pública termina em ".pub"). Para isso, vá ao seguinte URL no seu browser: https://github.com/(organization-name)/(repository-name)/settings/keys.

    1. Selecione Adicionar chave de implementação.

    2. Na nova caixa de diálogo Adicionar , introduza um título e, em seguida, copie e cole a chave SSH:

      Screenshot da nova caixa de diálogo Adicionar.

    3. Selecione Adicionar chave.

  3. Faça o upload da sua chave privada para Azure DevOps:

    1. Em Azure DevOps, no menu esquerdo, selecione Pipelines>Library.

      Screenshot do menu Azure Pipelines.

    2. Selecione Ficheiros Seguros>+ Ficheiro seguro:

      Screenshot do menu de ficheiros Secure.

    3. Selecione Procurar e, em seguida, selecione a sua chave privada:

      Screenshot da caixa de diálogo de ficheiros Upload e do botão Browse.

  4. Recupere a sua "Entrada de Anfitriões Conhecidos". Em GitBash, insira o seguinte comando:

    ssh-keyscan github.com
    

    A sua "Entrada de Anfitriões Conhecidos" é o valor apresentado que não começa nos # resultados do GitBash:

    Screenshot dos principais resultados de pesquisa em GitBash.

  5. Crie um oleoduto YAML.

    Para criar um gasoduto YAML, na definição YAML, adicione a seguinte tarefa:

    - task: InstallSSHKey@0
     inputs:
       knownHostsEntry: #{Enter your Known Hosts Entry Here}
       sshPublicKey: #{Enter your Public key Here}
       sshKeySecureFile: #{Enter the name of your key in "Secure Files" Here}
    

As teclas SSH estão agora instaladas e pode proceder com o script para ligar utilizando SSH, e não o HTTPS predefinido.

Requisitos

Requisito Description
Tipos de gasodutos YAML, Construção clássica, lançamento clássico
Continua Agente, Grupo de Implementação
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer pedidos para tarefas subsequentes no trabalho.
Restrições de comando Esta tarefa executa usando as seguintes restrições de comando: restritas
Variáveis de configuração Esta tarefa tem permissão para definir as seguintes variáveis: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION
Versão do agente 2.182.1 ou maior
Categoria da tarefa Utilitário
Requisito Description
Tipos de gasodutos YAML, Construção clássica, lançamento clássico
Continua Agente, Grupo de Implementação
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer pedidos para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis de configuração Qualquer
Versão do agente 2.117.0 ou maior
Categoria da tarefa Utilitário