Udostępnij za pośrednictwem


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, configUseri 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:

  1. Wygeneruj parę kluczy do użycia do uwierzytelniania dostępu z usługi GitHub do usługi Azure DevOps:

    1. W programie GitBash uruchom następujące polecenie:

      ssh-keygen -t rsa
      
    2. Wprowadź nazwę pary kluczy SSH. W naszym przykładzie używamy klucza myKey.

      Zrzut ekranu przedstawiający monit gitBash o wprowadzenie nazwy pary kluczy SSH.

    3. (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.

      Zrzut ekranu przedstawiający monit gitBash o wprowadzenie hasła dla pary kluczy SSH.

      ssh-keygen tworzy pary kluczy SSH, a zostanie wyświetlony następujący komunikat o powodzeniu:

      Zrzut ekranu przedstawiający komunikat gitBash pokazujący, że utworzono parę kluczy SSH.

    4. W Eksplorator plików systemu Windows sprawdź nowo utworzoną parę kluczy:

      Zrzut ekranu przedstawiający pliki par kluczy w systemie Windows Eksplorator plików.

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

    1. Wybierz pozycję Dodaj klucz wdrażania.

    2. W oknie dialogowym Dodawanie nowego wprowadź tytuł, a następnie skopiuj i wklej klucz SSH:

      Zrzut ekranu przedstawiający okno dialogowe Dodawanie nowego.

    3. Wybierz pozycję Dodaj klucz.

  3. Przekaż klucz prywatny do usługi Azure DevOps:

    1. W usłudze Azure DevOps w menu po lewej stronie wybierz pozycjęBibliotekapotoków>.

      Zrzut ekranu przedstawiający menu usługi Azure Pipelines.

    2. Wybierz pozycję Bezpieczne pliki>+ Bezpieczny plik:

      Zrzut ekranu przedstawiający menu Bezpieczne pliki.

    3. Wybierz pozycję Przeglądaj, a następnie wybierz klucz prywatny:

      Zrzut ekranu przedstawiający okno dialogowe Przekazywanie pliku i przycisk Przeglądaj.

  4. 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:

    Zrzut ekranu przedstawiający kluczowe wyniki wyszukiwania w powłoce GitBash.

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