Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diese Aufgabe in einer Pipeline, um einen SSH-Schlüssel vor einem Build- oder Releaseschritt zu installieren.
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.
Eingänge
knownHostsEntry
-
Eintrag für bekannte Hosts
Eingabealias: hostName
.
string
. Erforderlich.
Gibt den SSH-Schlüsseleintrag für die known_hosts Datei an.
sshPublicKey
-
öffentlichen SSH-Schlüssel
string
.
Wahlfrei. Gibt den Inhalt des öffentlichen SSH-Schlüssels an.
sshPassphrase
-
SSH-Passphrase
string
.
Wahlfrei. Gibt die Passphrase für den SSH-Schlüssel an, falls vorhanden.
sshKeySecureFile
-
SSH-Schlüssel-
string
. Erforderlich.
Gibt den SSH-Schlüssel an, der in Secure Files
hochgeladen wurde, um es auf dem Agent zu installieren.
addEntryToConfig
-
Hinzufügen eines Eintrags zur SSH-Konfigurationskonfiguration
boolean
. Standardwert: false
.
Wahlfrei. Fügt einen Eintrag im Zusammenhang mit dem Schlüssel hinzu, der in der SSH-Konfigurationsdatei installiert wurde. Die Schlüsseldatei ist für alle nachfolgenden Aufgaben verfügbar.
configHostAlias
-
Alias-
string
. Erforderlich, wenn addEntryToConfig = true
.
Gibt den Namen des SSH-Konfigurationseintrags an.
configHostname
-
Hostnamen
string
. Erforderlich, wenn addEntryToConfig = true
.
Gibt die Hostnameneigenschaft des SSH-Konfigurationseintrags an.
configUser
-
string
. Wahlfrei. Wird verwendet, wenn addEntryToConfig = true
.
Gibt die Benutzername-Eigenschaft des SSH-Konfigurationseintrags an.
configPort
-
Hafen
string
. Wahlfrei. Wird verwendet, wenn addEntryToConfig = true
.
Gibt den Port des SSH-Konfigurationseintrags an.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Verwenden Sie diese Aufgabe in einer Pipeline, um einen SSH-Schlüssel vor einem Build- oder Releaseschritt zu installieren.
Hinweis
Für diese Aufgabe war Git Bash für Windows auf dem Agent erforderlich.
Verwendung und bewährte Methoden
Wenn Sie einen SSH-Schlüssel in der gehosteten Poolsinstallieren, können Sie in späteren Schritten in Ihrer Pipeline eine Verbindung mit einem Remotesystem herstellen, in dem der entsprechende öffentliche Schlüssel bereits vorhanden ist. Sie können z. B. eine Verbindung mit einem Git-Repository oder mit einem virtuellen Computer in Azure herstellen.
Es wird empfohlen, dass Sie Ihren öffentlichen Schlüssel nicht als Nur-Text an die Aufgabenkonfiguration übergeben.
stattdessen eine geheime Variable in Ihrer Pipeline für den Inhalt der mykey.pub
Datei festlegen. Rufen Sie dann die Variable in Der Pipelinedefinition als $(myPubKey)
auf. Verwenden Sie für den geheimen Teil Ihres Schlüssels die Secure File library in Azure Pipelines.
Verwenden Sie zum Erstellen Ihrer Aufgabe das folgende Beispiel für eine gut konfigurierte Aufgabe zum Installieren von SSH-Schlüsseln:
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Hinweis
Ihr öffentlicher Schlüssel sollte dem Repository\Organisation hinzugefügt werden; andernfalls treten Zugriffsprobleme auf. Folgen Sie für GitHub der obigen Anleitung. Verwenden Sie für Azure DevOps Services Hinzufügen des öffentlichen Schlüssels zu Azure DevOps Services/TFS.
Installieren mehrerer SSH-Schlüssel im selben Pipelineauftrag
Bei Verwendung mehrerer Schlüssel im selben Pipelineauftrag wird standardmäßig der erste verwendet. Um den gewünschten Schlüssel beim Herstellen einer SSH-Verbindung verwenden zu können, können Sie den Advanced
Abschnitt der aufgabe InstallSSHKey
verwenden, um die folgenden Parameter festzulegen: addEntryToConfig
, configHostAlias
, configHostname
, configUser
, und configPort
.
Mit diesen Parametern können Sie der SSH-Konfigurationsdatei (z. B. /root/.ssh/config
für Linux) einen Host hinzufügen, um ihn über einen Alias in benutzerdefinierten Skripts zu verwenden.
Nach Abschluss des Builds versucht die Aufgabe, die ursprüngliche SSH-Konfigurationsdatei wiederherzustellen. Wenn anfänglich keine SSH-Konfigurationsdatei vorhanden war, wird der Host aus dem Agent entfernt.
Beispiel für die Installation mehrerer SSH-Schlüssel. Der Fall mit mehreren GitHub-Repositorys und ihrem eigenen Schlüssel für jeden:
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
Beispiele
Beispielsetup mit GitHub
In diesem Abschnitt wird beschrieben, wie Sie ein privates GitHub-Repository mit YAML aus Azure Pipelines verwenden.
Wenn Sie über ein Repository verfügen, das Sie der Open-Source-Community nicht zur Verfügung stellen möchten, empfiehlt es sich, das Repository privat zu machen. Ein CI/CD-Tool wie Azure DevOps benötigt jedoch Zugriff auf das Repository, wenn Sie das Tool zum Verwalten des Repositorys verwenden möchten. Um Azure DevOps Zugriff zu gewähren, benötigen Sie möglicherweise einen SSH-Schlüssel, um den Zugriff auf GitHub zu authentifizieren.
Hier sind die Schritte zum Verwenden eines SSH-Schlüssels zum Authentifizieren des Zugriffs auf GitHub:
Generieren Sie ein Schlüsselpaar, das zum Authentifizieren des Zugriffs von GitHub zu Azure DevOps verwendet werden soll:
Führen Sie in GitBash den folgenden Befehl aus:
ssh-keygen -t rsa
Geben Sie einen Namen für das SSH-Schlüsselpaar ein. In unserem Beispiel wird myKey-verwendet.
(Optional) Sie können eine Passphrase eingeben, um Ihren privaten Schlüssel zu verschlüsseln. Dieser Schritt ist optional. Die Verwendung einer Passphrase ist sicherer als die Verwendung einer Passphrase.
ssh-keygen
erstellt die SSH-Schlüsselpaare, und die folgende Erfolgsmeldung wird angezeigt:Überprüfen Sie im Windows-Datei-Explorer das neu erstellte Schlüsselpaar:
Fügen Sie den öffentlichen Schlüssel zum GitHub-Repository hinzu. (Der öffentliche Schlüssel endet in ".pub"). Gehen Sie dazu in Ihrem Browser zur folgenden URL:
https://github.com/(organization-name)/(repository-name)/settings/keys
.Wählen Sie Bereitstellungsschlüssel hinzufügen aus.
Geben Sie im Dialogfeld Neues hinzufügen einen Titel ein, und kopieren Sie den SSH-Schlüssel, und fügen Sie ihn ein:
Wählen Sie Neuer Schlüssel aus.
Laden Sie Ihren privaten Schlüssel in Azure DevOps hoch:
Wählen Sie in Azure DevOps im linken Menü Pipelines>Libraryaus.
Wählen Sie Sicheren Dateien>+ Sichere Dateiaus:
Wählen Sie Durchsuchen sieaus, und wählen Sie dann Ihren privaten Schlüssel aus:
Stellen Sie Ihren "Eintrag für bekannte Hosts" wieder her. Geben Sie in GitBash den folgenden Befehl ein:
ssh-keyscan github.com
Ihr Eintrag "Bekannte Hosts" ist der angezeigte Wert, der nicht mit # in den GitBash-Ergebnissen beginnt:
Erstellen Sie eine YAML-Pipeline.
Um eine YAML-Pipeline zu erstellen, fügen Sie in der YAML-Definition die folgende Aufgabe hinzu:
- 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}
Die SSH-Schlüssel sind jetzt installiert, und Sie können mit dem Skript fortfahren, um mithilfe von SSH und nicht mit dem Standard-HTTPS zu verbinden.
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Classic Build, Classic Release |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Nichts |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Diese Aufgabe wird mit den folgenden Befehlseinschränkungenausgeführt: restricted |
Settable-Variablen | Diese Aufgabe verfügt über die Berechtigung zum Festlegen der folgenden Variablen: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Agentversion | 2.182.1 oder höher |
Vorgangskategorie | Nützlichkeit |
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Classic Build, Classic Release |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Nichts |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Jegliche |
Settable-Variablen | Jegliche |
Agentversion | 2.117.0 oder höher |
Vorgangskategorie | Nützlichkeit |