InstallSSHKey@0 - SSH anahtarı v0 görevini yükleme

Derleme veya yayın adımından önce SSH anahtarı yüklemek için bu görevi işlem hattında kullanın.

Sözdizimi

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

Girişler

Bilinen Konaklar GirdisiknownHostsEntry -
Giriş diğer adı: hostName. string. Gerekli.

known_hosts dosyası için SSH anahtar girişini belirtir.


sshPublicKey - SSH Ortak Anahtarı
string.

Opsiyonel. Ortak SSH anahtarının içeriğini belirtir.


sshPassphrase - SSH Parola
string.

Opsiyonel. Varsa, SSH anahtarının parolasını belirtir.


sshKeySecureFile - SSH Anahtarı
string. Gerekli.

Aracıya yüklenecek Secure Files yüklenen SSH anahtarını belirtir.


addEntryToConfig - SSH yapılandırma girdi ekleme
boolean. Varsayılan değer: false.

Opsiyonel. SSH yapılandırma dosyasına yüklenen anahtarla ilgili bir girdi ekler. Anahtar dosyası sonraki tüm görevler için kullanılabilir.


configHostAlias - Diğer Ad
string. addEntryToConfig = truegerekir.

SSH yapılandırma girdisinin adını belirtir.


ana bilgisayar adıconfigHostname -
string. addEntryToConfig = truegerekir.

SSH yapılandırma girişinin ana bilgisayar adı özelliğini belirtir.


kullanıcıconfigUser -
string. Opsiyonel. addEntryToConfig = trueolduğunda kullanın.

SSH yapılandırma girişinin kullanıcı adı özelliğini belirtir.


configPort - Bağlantı Noktası
string. Opsiyonel. addEntryToConfig = trueolduğunda kullanın.

SSH yapılandırma girdisinin bağlantı noktasını belirtir.


Görev denetimi seçenekleri

Tüm görevlerin, görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz. Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

Derleme veya yayın adımından önce SSH anahtarı yüklemek için bu görevi işlem hattında kullanın.

Uyarı

Bu görev aracıda Windows için Git Bash'i gerektiriyor.

Kullanım ve en iyi yöntemler

barındırılanhavuzlarına bir SSH anahtarı yüklerseniz, işlem hattınızın sonraki adımlarında eşleşen ortak anahtarın zaten bulunduğu uzak bir sisteme bağlanabilirsiniz. Örneğin, Bir Git deposuna veya Azure'daki bir VM'ye bağlanabilirsiniz.

Ortak anahtarınızı görev yapılandırmasına düz metin olarak geçirmenizi öneririz. Bunun yerine bir gizli dizi değişkeni ayarlayın. Ardından işlem hattı tanımınızdaki değişkenini $(myPubKey)olarak çağırın. Anahtarınızın gizli bölümü için Azure Pipelines'da Güvenli Dosya kitaplığı kullanın.

Görevinizi oluşturmak için aşağıdaki iyi yapılandırılmış SSH Anahtarını Yükle görevinin örneğini kullanın:

steps:
- task: InstallSSHKey@0
  displayName: 'Install an SSH key'
  inputs:
    knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
    sshPublicKey: '$(myPubKey)'
    sshKeySecureFile: 'id_rsa'

Uyarı

Ortak anahtarınız depoya\kuruluşa eklenmelidir; aksi takdirde erişim sorunları yaşanacaktır. GitHub için yukarıdaki kılavuzu izleyin. Azure DevOps Services için Ortak anahtarı Azure DevOps Services/TFSekleme seçeneğini kullanın.

Aynı işlem hattı işine birden çok SSH anahtarı yükleme

Aynı işlem hattı işinde birden fazla anahtar kullanıldığında, ilk anahtar varsayılan olarak kullanılır. SSH bağlantısı kurarken istenen anahtarı kullanabilmek için, Advanced görevinin InstallSSHKey bölümünü kullanarak şu parametreleri ayarlayabilirsiniz: addEntryToConfig, configHostAlias, configHostname, configUserve configPort.

Bu parametreler, bir diğer ad aracılığıyla özel betiklerde kullanmak için SSH yapılandırma dosyasına (örneğin, Linux için /root/.ssh/config) bir konak eklemenize olanak sağlar.

Derleme tamamlandıktan sonra görev özgün SSH yapılandırma dosyasını geri yüklemeyi dener. Başlangıçta SSH yapılandırma dosyası yoksa, konak aracıdan kaldırılır.

Birden çok SSH anahtarı yükleme örneği. Birkaç GitHub deposu ve her biri için kendi anahtarı olan durum:

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

İlgili GitHub belgeleri.

Örnekler

GitHub kullanarak örnek kurulum

Bu bölümde Azure Pipelines içinden YAML ile özel github deposunun nasıl kullanılacağı açıklanmaktadır.

Açık kaynak topluluğuna göstermek istemediğiniz bir deponuz varsa, depoyu özel hale getirmek yaygın bir uygulamadır. Ancak, depoyu yönetmek için aracı kullanmak istiyorsanız Azure DevOps gibi bir CI/CD aracının depoya erişmesi gerekir. Azure DevOps erişimi vermek için GitHub'a erişimin kimliğini doğrulamak için bir SSH anahtarına ihtiyacınız olabilir.

GitHub'a erişimin kimliğini doğrulamak için SSH anahtarı kullanma adımları şunlardır:

  1. GitHub'dan Azure DevOps'a erişimin kimliğini doğrulamak için kullanılacak bir anahtar çifti oluşturun:

    1. GitBash'ta aşağıdaki komutu çalıştırın:

      ssh-keygen -t rsa
      
    2. SSH anahtar çifti için bir ad girin. Örneğimizde myKey kullanıyoruz.

      SSH anahtar çiftiniz için bir ad girmek için GitBash isteminin ekran görüntüsü.

    3. (İsteğe bağlı) Özel anahtarınızı şifrelemek için parola girebilirsiniz. Bu adım isteğe bağlıdır. Parola kullanmak, parola kullanmamaktan daha güvenlidir.

      SSH anahtar çiftiniz için parola girmek için GitBash isteminin ekran görüntüsü.

      ssh-keygen SSH anahtar çiftlerini oluşturur ve aşağıdaki başarı iletisi görüntülenir:

      SSH anahtar çiftinin oluşturulduğunu gösteren GitBash iletisinin ekran görüntüsü.

    4. Windows Dosya Gezgini'nde yeni oluşturduğunuz anahtar çiftini denetleyin:

      Windows Dosya Gezgini'nde anahtar çifti dosyalarının ekran görüntüsü.

  2. Ortak anahtarı GitHub deposuna ekleyin. ("Ortak anahtar ".pub" ile biter). Bunu yapmak için tarayıcınızda şu URL'ye gidin: https://github.com/(organization-name)/(repository-name)/settings/keys.

    1. Dağıtım anahtarı ekle'yi seçin.

    2. Yeni ekle iletişim kutusunda bir başlık girin ve SSH anahtarını kopyalayıp yapıştırın:

      Yeni ekle iletişim kutusunun ekran görüntüsü.

    3. Anahtar ekle’yi seçin.

  3. Özel anahtarınızı Azure DevOps'a yükleyin:

    1. Azure DevOps'ta soldaki menüden pipelines>Libraryöğesini seçin.

      Azure Pipelines menüsünün ekran görüntüsü.

    2. güvenli dosyalar >seçeneğini belirleyin:

      Güvenli dosyalar menüsünün ekran görüntüsü.

    3. Gözat'ıseçin ve ardından özel anahtarınızı seçin:

      Dosyayı karşıya yükle iletişim kutusunun ve Gözat düğmesinin ekran görüntüsü.

  4. "Bilinen Konaklar Girdinizi" kurtarın. GitBash'ta aşağıdaki komutu girin:

    ssh-keyscan github.com
    

    "Bilinen Konaklar Girdiniz", GitBash sonuçlarında # ile başlamayan görüntülenen değerdir:

    GitBash'teki önemli arama sonuçlarının ekran görüntüsü.

  5. YAML işlem hattı oluşturma.

    YAML işlem hattı oluşturmak için YAML tanımına aşağıdaki görevi ekleyin:

    - 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}
    

SSH anahtarları artık yüklenir ve varsayılan HTTPS'yi değil, SSH kullanarak bağlanmak için betikle devam edebilirsiniz.

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalışır Aracı, DeploymentGroup
Talepleri Hiç kimse
Özellikleri Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz.
Komut kısıtlamaları Bu görev,aşağıdaki komut kısıtlamaları kullanılarak çalışır: restricted
Ayarlanabilir değişkenleri Bu görevin şu değişkenleriayarlama izni var: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION
Aracı sürümü 2.182.1 veya üzeri
Görev kategorisi Fayda