Sdílet prostřednictvím


InstallSSHKey@0 – Instalace úlohy klíče SSH v0

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

Syntaxe

# 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.

Vstupy

knownHostsEntry - položka známých hostitelů
Vstupní alias: hostName. string. Povinné.

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


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

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


sshPassphrase - přístupové fráze SSH
string.

Volitelný. Určuje přístupové heslo pro klíč SSH, pokud existuje.


klíče SSH sshKeySecureFile -
string. Povinné.

Určuje klíč SSH, který se nahrál do Secure Files pro instalaci do agenta.


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

Volitelný. 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 následné úlohy.


configHostAlias - alias
string. Požadováno při addEntryToConfig = true.

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


configHostname - název hostitele
string. Požadováno při addEntryToConfig = true.

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


configUser - uživatele
string. Volitelný. Používá se při addEntryToConfig = true.

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


configPort - port
string. Volitelný. Používá se při addEntryToConfig = true.

Určuje port položky konfigurace SSH.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.

Výstupní proměnné

Žádné.

Poznámky

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

Poznámka:

Tato úloha vyžadovala Git Bash pro Windows v agentu.

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

Pokud nainstalujete klíč SSH do hostovaných fondů, v pozdějších krocích v kanálu se můžete připojit ke vzdálenému systému, ve kterém je již zaveden odpovídající veřejný klíč. 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ávejte veřejný klíč jako prostý text. Místo toho nastavit proměnnou tajného kódu v kanálu pro obsah souboru mykey.pub. Potom volejte proměnnou v definici kanálu jako $(myPubKey). Pro část tajného klíče 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 pokynů výše uvedených. Pro Azure DevOps Services použijte Přidání veřejného klíče 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íč. Chcete-li při navazování připojení SSH použít požadovaný klíč, můžete pomocí oddílu Advanced úlohy InstallSSHKey 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 nebyl zpočátku žádný konfigurační soubor SSH, hostitel se odebere z agenta.

Příklad instalace několika klíčů SSH. Případ s několika úložišti GitHubu a jejich vlastním klíčem pro každou 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í dokumenty GitHubu.

Příklady

Příklad nastavení pomocí GitHubu

Tato část popisuje, jak používat privátní úložiště GitHubu s YAML z azure Pipelines.

Pokud máte úložiště, které nechcete zpřístupnit opensourcové komunitě, je běžným postupem nastavit úložiště 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 k Azure DevOps, možná budete potřebovat klíč SSH k ověření přístupu k GitHubu.

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

  1. Vygenerování páru klíčů pro 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 přístupové heslo pro š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í přístupového 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, že byl vytvořen pár klíčů SSH.

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

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

  2. Přidejte veřejný klíč do úložiště GitHub. (Veřejný klíč končí na ".pub"). Uděláte to tak, že v prohlížeči přejdete 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 zkopírujte a vložte klíč SSH:

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

    3. Vyberte Přidat klíč.

  3. Nahrání privátního klíče do Azure DevOps:

    1. V Azure DevOps v nabídce vlevo vyberte Pipelines>Library.

      snímek obrazovky s nabídkou Azure Pipelines

    2. Vyberte Soubory zabezpečení>+zabezpečeného souboru:

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

    3. Vyberte Procházeta pak vyberte 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 v definici 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 ve skriptu pro připojení pomocí SSH, nikoli pomocí výchozího protokolu HTTPS.

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení, klasická verze
Běží na 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 spouští s následujícími omezeními příkazů : omezeno:
nastavitelné proměnné Tento úkol má oprávnění nastavit následující proměnné: 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 úkolu Užitnost
Požadavek Popis
Typy kanálů YAML, klasické sestavení, klasická verze
Běží na Agent, DeploymentGroup
požadavky Žádný
možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
omezení příkazů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta 2.117.0 nebo novější
Kategorie úkolu Užitnost