InstallSSHKey@0 — instalowanie zadania V0 klucza SSH
To zadanie w potoku służy do instalowania klucza SSH przed wykonaniem kroku 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.
Dane wejściowe
knownHostsEntry
-
znanych hostów
Alias wejściowy: hostName
.
string
. To jest wymagane.
Określa wpis klucza SSH dla pliku known_hosts.
sshPublicKey
-
klucza publicznego SSH
string
.
Opcjonalny. Określa zawartość publicznego klucza SSH.
sshPassphrase
-
hasła SSH
string
.
Opcjonalny. Określa hasło dla klucza SSH, jeśli istnieje.
sshKeySecureFile
-
klucza SSH
string
. To jest wymagane.
Określa klucz SSH przekazany do Secure Files
do zainstalowania na agencie.
addEntryToConfig
-
Dodaj wpis do konfiguracji SSH
boolean
. Wartość domyślna: false
.
Opcjonalny. Dodaje wpis powią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
-
Port
string
. Opcjonalny. Użyj polecenia , gdy addEntryToConfig = true
.
Określa port wpisu konfiguracji SSH.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
To zadanie w potoku służy do instalowania klucza SSH przed wykonaniem kroku 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 pulach hostowanych , w kolejnych krokach potoku możesz nawiązać połączenie z systemem zdalnym, w którym już istnieje pasujący klucz publiczny. Możesz na przykład 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 ustawić zmienną wpisu tajnego w potoku dla zawartości pliku mykey.pub
. 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 będą występować problemy z dostępem. W przypadku usługi GitHub wykonaj powyższego przewodnika. W przypadku usług Azure DevOps Services użyj Dodaj klucz publiczny do usług 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 używany domyślnie. Aby móc użyć żądanego klucza podczas nawiązywania połączenia SSH, możesz użyć sekcji Advanced
zadania InstallSSHKey
, 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. Przypadek z kilkoma repozytoriami GitHub i ich własnym kluczem 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
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 ujawniać społeczności typu 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 udzielić dostępu do usługi Azure DevOps, może być potrzebny klucz SSH do uwierzytelniania dostępu do usługi GitHub.
Poniżej przedstawiono procedurę 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 powłoce GitBash uruchom następujące polecenie:
ssh-keygen -t rsa
Wprowadź nazwę pary kluczy SSH. W naszym przykładzie używamy myKey.
(Opcjonalnie) Możesz wprowadzić hasło, aby zaszyfrować klucz prywatny. Ten krok jest opcjonalny. 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 Eksploratorze 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ę Pipelines>Library.
Wybierz pozycję Secure files>+ Secure file:
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 rozpoczyna się od # w wynikach powłoki GitBash:
Utwórz potok 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żna 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 na | Agent, DeploymentGroup |
Wymagania | Żaden |
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 ustawiane | 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 zadań | Użyteczność |
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Żaden |
możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | 2.117.0 lub nowsza |
Kategoria zadań | Użyteczność |