Sdílet prostřednictvím


InstallSSHKey@0 – Úloha instalace klíče SSH v0

Tuto úlohu použijte v kanálu k instalaci klíče SSH před krokem sestavení nebo vydání.

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.

Vstupy

knownHostsEntry - Položka Známých hostitelů
Alias vstupu: hostName. string. Povinná hodnota.

Určuje položku klíče SSH pro soubor known_hosts.


sshPublicKey - Veřejný klíč SSH
string.

Nepovinný parametr. Určuje obsah veřejného klíče SSH.


sshPublicKey - Veřejný klíč SSH
string. Povinná hodnota.

Určuje obsah veřejného klíče SSH.


sshPassphrase - Heslo SSH
string.

Nepovinný parametr. Určuje heslo pro klíč SSH, pokud existuje.


sshKeySecureFile - Klíč SSH
string. Povinná hodnota.

Určuje klíč SSH, který se nahrál do, aby Secure Files se nainstaloval na agenta.


addEntryToConfig - Přidání položky do konfigurace SSH
boolean. Výchozí hodnota: false.

Nepovinný parametr. Přidá položku související s klíčem, který byl nainstalován do konfiguračního souboru SSH. Soubor klíče bude k dispozici pro všechny další úlohy.


configHostAlias - Alias
string. Vyžaduje se, když addEntryToConfig = true.

Určuje název položky konfigurace SSH.


configHostname - Název hostitele
string. Vyžaduje se, když addEntryToConfig = true.

Určuje vlastnost názvu hostitele položky konfigurace SSH.


configUser - Uživatele
string. Nepovinný parametr. Použijte, když addEntryToConfig = true.

Určuje vlastnost uživatelského jména položky konfigurace SSH.


configPort - Port
string. Nepovinný parametr. Použijte, když addEntryToConfig = true.

Určuje port položky konfigurace SSH.


hostName - Položka Známých hostitelů
string. Povinná hodnota.

Určuje položku klíče SSH pro soubor known_hosts.


Možnosti řízení úkolů

Všechny úkoly mají kromě vstupů úkolů i možnosti řízení. Další informace najdete v tématu Možnosti ovládacích prvků a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Tuto úlohu použijte v kanálu k instalaci klíče SSH před krokem sestavení nebo vydání.

Poznámka

Tato úloha vyžadovala u agenta Git Bash pro Windows.

Použití a osvědčené postupy

Pokud v hostovaných fondech nainstalujete klíč SSH, můžete se v pozdějších krocích kanálu připojit ke vzdálenému systému, ve kterém je odpovídající veřejný klíč již zavedený. Můžete se například připojit k úložišti Git nebo k virtuálnímu počítači v Azure.

Doporučujeme, abyste do konfigurace úlohy nepředáli veřejný klíč jako prostý text. Místo toho nastavte v kanálu tajnou proměnnou pro obsah mykey.pub souboru. Potom proměnnou v definici kanálu zavolejte jako $(myPubKey). Jako část klíče s tajným kódem použijte knihovnu Secure File v Azure Pipelines.

Pokud chcete vytvořit úlohu, použijte následující příklad dobře nakonfigurované úlohy Instalace klíče SSH:

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

Poznámka

Váš veřejný klíč by se měl přidat do úložiště\organizace. jinak dojde k problémům s přístupem. V případě GitHubu postupujte podle výše uvedeného průvodce. Pro Azure DevOps Services použijte možnost Přidat veřejný klíč do Azure DevOps Services/TFS.

Instalace několika klíčů SSH ve stejné úloze kanálu

Při použití více než jednoho klíče ve stejné úloze kanálu se ve výchozím nastavení použije první klíč. Pokud chcete při navazování připojení SSH použít požadovaný klíč, můžete v Advanced části InstallSSHKey úlohy nastavit následující parametry: addEntryToConfig, configHostAlias, configHostname, configUsera configPort.

Tyto parametry umožňují přidat hostitele do konfiguračního souboru SSH (například /root/.ssh/config pro Linux), aby ho bylo možné použít ve vlastních skriptech prostřednictvím aliasu.

Po dokončení sestavení se úloha pokusí obnovit původní konfigurační soubor SSH. Pokud na začátku nebyl žádný konfigurační soubor SSH, hostitel se odebere z agenta.

Příklad instalace několika klíčů SSH. Případ několika úložišť GitHubu a jejich vlastního klíče pro každé z nich:

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

Související dokumentace ke GitHubu

Příklady

Příklad nastavení pomocí GitHubu

Tato část popisuje, jak používat privátní úložiště GitHub s YAML v rámci Azure Pipelines.

Pokud máte úložiště, které nechcete zpřístupnit opensourcové komunitě, je běžným postupem nastavit ho jako soukromé. Pokud ale chcete ke správě úložiště použít nástroj CI/CD, jako je Azure DevOps, potřebuje přístup k úložišti. Pokud chcete udělit přístup Azure DevOps, možná budete potřebovat klíč SSH k ověření přístupu ke GitHubu.

Tady je postup použití klíče SSH k ověření přístupu ke GitHubu:

  1. Vygenerujte pár klíčů, který použijete k ověření přístupu z GitHubu do Azure DevOps:

    1. V GitBash spusťte následující příkaz:

      ssh-keygen -t rsa
      
    2. Zadejte název páru klíčů SSH. V našem příkladu používáme myKey.

      Snímek obrazovky s výzvou GitBash k zadání názvu páru klíčů SSH

    3. (Volitelné) Můžete zadat heslo pro zašifrování privátního klíče. Tento krok je volitelný. Použití přístupového hesla je bezpečnější než použití hesla.

      Snímek obrazovky s výzvou GitBash k zadání hesla pro pár klíčů SSH

      ssh-keygen vytvoří páry klíčů SSH a zobrazí se následující zpráva o úspěchu:

      Snímek obrazovky se zprávou GitBash, která ukazuje vytvoření páru klíčů SSH

    4. V Průzkumník souborů Windows zkontrolujte nově vytvořený pár klíčů:

      Snímek obrazovky se soubory páru klíčů ve Windows Průzkumník souborů

  2. Přidejte veřejný klíč do úložiště GitHub. (Veřejný klíč končí na ".pub"). Chcete-li to provést, přejděte v prohlížeči na následující adresu URL: https://github.com/(organization-name)/(repository-name)/settings/keys.

    1. Vyberte Přidat klíč nasazení.

    2. V dialogovém okně Přidat nový zadejte název a pak zkopírujte a vložte klíč SSH:

      Snímek obrazovky s dialogovým oknem Přidat nový

    3. Vyberte Přidat klíč.

  3. Nahrajte privátní klíč do Azure DevOps:

    1. V Azure DevOps v nabídce vlevo vyberte Knihovna kanálů>.

      Snímek obrazovky s nabídkou Azure Pipelines

    2. Vyberte Zabezpečené soubory>+ Zabezpečený soubor:

      Snímek obrazovky s nabídkou Zabezpečené soubory

    3. Vyberte Procházet a pak vyberte svůj privátní klíč:

      Snímek obrazovky s dialogovým oknem Nahrát soubor a tlačítkem Procházet

  4. Obnovte položku Známých hostitelů. V GitBash zadejte následující příkaz:

    ssh-keyscan github.com
    

    Položka známých hostitelů je zobrazená hodnota, která ve výsledcích GitBash nezačíná # :

    Snímek obrazovky s klíčovými výsledky hledání v GitBashu

  5. Vytvořte kanál YAML.

    Pokud chcete vytvořit kanál YAML, přidejte do definice YAML následující úlohu:

    - 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}
    

Klíče SSH jsou teď nainstalované a můžete pokračovat skriptem pro připojení pomocí SSH, nikoli pomocí výchozího PROTOKOLU HTTPS.

Požadavky

Požadavek Popis
Typy kanálů YAML, classic build, verze Classic
Spustí se Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Tato úloha se spustí pomocí následujících omezení příkazů: restricted
Nastavitelné proměnné Tato úloha má oprávnění k nastavení následujících proměnných: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION
Verze agenta 2.182.1 nebo vyšší
Kategorie úloh Nástroj
Požadavek Popis
Typy kanálů YAML, classic build, verze Classic
Spustí se Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 2.117.0 nebo vyšší
Kategorie úloh Nástroj