InstallSSHKey@0 — instalowanie zadania klucza SSH w wersji 0
Użyj tego zadania w potoku, aby zainstalować klucz SSH przed krokiem kompilacji lub wydania.
Składnia
# 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.
Dane wejściowe
knownHostsEntry
- Znany wpis hostów
Alias wejściowy: hostName
. string
. Wymagane.
Określa wpis klucza SSH dla pliku known_hosts.
sshPublicKey
- Klucz publiczny SSH
string
.
Opcjonalny. Określa zawartość publicznego klucza SSH.
sshPublicKey
- Klucz publiczny SSH
string
. Wymagane.
Określa zawartość publicznego klucza SSH.
sshPassphrase
- Hasło SSH
string
.
Opcjonalny. Określa hasło klucza SSH, jeśli istnieje.
sshKeySecureFile
- Klucz SSH
string
. Wymagane.
Określa klucz SSH przekazany do Secure Files
instalacji agenta.
addEntryToConfig
- Dodawanie wpisu do konfiguracji SSH
boolean
. Wartość domyślna: false
.
Opcjonalny. Dodaje wpis związany z kluczem zainstalowanym w pliku konfiguracji SSH. Plik klucza będzie dostępny dla wszystkich kolejnych zadań.
configHostAlias
- Alias
string
. Wymagane, gdy addEntryToConfig = true
.
Określa nazwę wpisu konfiguracji SSH.
configHostname
- Nazwa hosta
string
. Wymagane, gdy addEntryToConfig = true
.
Określa właściwość nazwy hosta wpisu konfiguracji SSH.
configUser
- Użytkownika
string
. Opcjonalny. Użyj polecenia , gdy addEntryToConfig = true
.
Określa właściwość nazwy użytkownika wpisu konfiguracji SSH.
configPort
- Portu
string
. Opcjonalny. Użyj polecenia , gdy addEntryToConfig = true
.
Określa port wpisu konfiguracji SSH.
hostName
- Znany wpis hostów
string
. Wymagane.
Określa wpis klucza SSH dla pliku known_hosts.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz ich danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.
Zmienne wyjściowe
Brak.
Uwagi
Użyj tego zadania w potoku, aby zainstalować klucz SSH przed krokiem kompilacji lub wydania.
Uwaga
To zadanie wymaga powłoki Git Bash dla systemu Windows w agencie.
Użycie i najlepsze rozwiązania
Jeśli zainstalujesz klucz SSH w hostowanych pulach, w kolejnych krokach potoku możesz nawiązać połączenie z systemem zdalnym, w którym jest już zgodny klucz publiczny. Na przykład możesz nawiązać połączenie z repozytorium Git lub z maszyną wirtualną na platformie Azure.
Zalecamy, aby klucz publiczny nie był przekazywany jako zwykły tekst do konfiguracji zadania. Zamiast tego ustaw zmienną wpisu tajnegomykey.pub
w potoku dla zawartości pliku. Następnie wywołaj zmienną w definicji potoku jako $(myPubKey)
. W przypadku części klucza tajnego użyj biblioteki Secure File w usłudze Azure Pipelines.
Aby utworzyć zadanie, użyj następującego przykładu dobrze skonfigurowanego zadania Zainstaluj klucz SSH:
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Uwaga
Klucz publiczny należy dodać do repozytorium\organizacji; w przeciwnym razie wystąpią problemy z dostępem. W przypadku usługi GitHub postępuj zgodnie z powyższym przewodnikiem. W przypadku Azure DevOps Services użyj polecenia Dodaj klucz publiczny, aby Azure DevOps Services/TFS.
Instalowanie wielu kluczy SSH w tym samym zadaniu potoku
W przypadku używania więcej niż jednego klucza w tym samym zadaniu potoku pierwszy jest domyślnie używany. Aby móc użyć żądanego klucza podczas nawiązywania połączenia SSH, możesz użyć Advanced
sekcji InstallSSHKey
zadania, aby ustawić następujące parametry: addEntryToConfig
, configHostAlias
, configHostname
, configUser
i configPort
.
Te parametry umożliwiają dodanie hosta do pliku konfiguracji SSH (na przykład /root/.ssh/config
dla systemu Linux) w celu użycia go w skryptach niestandardowych za pośrednictwem aliasu.
Po zakończeniu kompilacji zadanie podejmie próbę przywrócenia oryginalnego pliku konfiguracji SSH. Jeśli początkowo nie było pliku konfiguracji SSH, host zostanie usunięty z agenta.
Przykład instalacji wielu kluczy SSH. W przypadku kilku repozytoriów GitHub i ich własnego klucza dla każdego 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
Powiązane dokumenty usługi GitHub.
Przykłady
Przykładowa konfiguracja przy użyciu usługi GitHub
W tej sekcji opisano sposób używania prywatnego repozytorium GitHub z językiem YAML z poziomu usługi Azure Pipelines.
Jeśli masz repozytorium, którego nie chcesz uwidaczniać w społeczności open source, typowym rozwiązaniem jest utworzenie prywatnego repozytorium. Jednak narzędzie ciągłej integracji/ciągłego wdrażania, takie jak Azure DevOps, wymaga dostępu do repozytorium, jeśli chcesz użyć narzędzia do zarządzania repozytorium. Aby zapewnić dostęp do usługi Azure DevOps, może być potrzebny klucz SSH do uwierzytelniania dostępu do usługi GitHub.
Poniżej przedstawiono kroki używania klucza SSH do uwierzytelniania dostępu do usługi GitHub:
Wygeneruj parę kluczy do użycia do uwierzytelniania dostępu z usługi GitHub do usługi Azure DevOps:
W programie GitBash uruchom następujące polecenie:
ssh-keygen -t rsa
Wprowadź nazwę pary kluczy SSH. W naszym przykładzie używamy klucza myKey.
(Opcjonalnie) Możesz wprowadzić hasło, aby zaszyfrować klucz prywatny. Ta czynność jest opcjonalna. Użycie hasła jest bezpieczniejsze niż nie jest używane.
ssh-keygen
tworzy pary kluczy SSH, a zostanie wyświetlony następujący komunikat o powodzeniu:W Eksplorator plików systemu Windows sprawdź nowo utworzoną parę kluczy:
Dodaj klucz publiczny do repozytorium GitHub. (Klucz publiczny kończy się na ".pub"). W tym celu przejdź do następującego adresu URL w przeglądarce:
https://github.com/(organization-name)/(repository-name)/settings/keys
.Wybierz pozycję Dodaj klucz wdrażania.
W oknie dialogowym Dodawanie nowego wprowadź tytuł, a następnie skopiuj i wklej klucz SSH:
Wybierz pozycję Dodaj klucz.
Przekaż klucz prywatny do usługi Azure DevOps:
W usłudze Azure DevOps w menu po lewej stronie wybierz pozycjęBibliotekapotoków>.
Wybierz pozycję Bezpieczne pliki>+ Bezpieczny plik:
Wybierz pozycję Przeglądaj, a następnie wybierz klucz prywatny:
Odzyskaj wpis "Znane hosty". W powłoce GitBash wprowadź następujące polecenie:
ssh-keyscan github.com
"Znany wpis hostów" to wyświetlana wartość, która nie zaczyna się od # w wynikach powłoki GitBash:
Tworzenie potoku YAML.
Aby utworzyć potok YAML, w definicji YAML dodaj następujące zadanie:
- 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}
Klucze SSH są teraz zainstalowane i możesz przejść do skryptu, aby nawiązać połączenie przy użyciu protokołu SSH, a nie domyślnego protokołu HTTPS.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa w | Agent, DeploymentGroup |
Wymagania | Brak |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
Ograniczenia poleceń | To zadanie jest uruchamiane przy użyciu następujących ograniczeń poleceń: ograniczone |
Zmienne ustawialne | To zadanie ma uprawnienia do ustawiania następujących zmiennych: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Wersja agenta | 2.182.1 lub nowsza |
Kategoria zadania | Narzędzie |
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa w | Agent, DeploymentGroup |
Wymagania | Brak |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
Ograniczenia poleceń | Dowolne |
Zmienne ustawialne | Dowolne |
Wersja agenta | 2.117.0 lub nowsza |
Kategoria zadania | Narzędzie |