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
, configUser
a 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:
Vygenerujte pár klíčů, který použijete k ověření přístupu z GitHubu do Azure DevOps:
V GitBash spusťte následující příkaz:
ssh-keygen -t rsa
Zadejte název páru klíčů SSH. V našem příkladu používáme myKey.
(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.
ssh-keygen
vytvoří páry klíčů SSH a zobrazí se následující zpráva o úspěchu:V Průzkumník souborů Windows zkontrolujte nově vytvořený pár klíčů:
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
.Vyberte Přidat klíč nasazení.
V dialogovém okně Přidat nový zadejte název a pak zkopírujte a vložte klíč SSH:
Vyberte Přidat klíč.
Nahrajte privátní klíč do Azure DevOps:
V Azure DevOps v nabídce vlevo vyberte Knihovna kanálů>.
Vyberte Zabezpečené soubory>+ Zabezpečený soubor:
Vyberte Procházet a pak vyberte svůj privátní klíč:
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á # :
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 |