Bagikan melalui


InstallSSHKey@0 - Menginstal tugas kunci SSH v0

Gunakan tugas ini dalam alur untuk menginstal kunci SSH sebelum langkah build atau rilis.

Sintaks

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

Input

knownHostsEntry - Entri Host yang Diketahui
Alias input: hostName. string. Wajib diisi.

Menentukan entri kunci SSH untuk file known_hosts.


sshPublicKey - Kunci Umum SSH
string.

Opsional. Menentukan isi kunci SSH publik.


sshPublicKey - Kunci Umum SSH
string. Wajib diisi.

Menentukan isi kunci SSH publik.


sshPassphrase - Frasa Sandi SSH
string.

Opsional. Menentukan frasa sandi untuk kunci SSH, jika ada.


sshKeySecureFile - Kunci SSH
string. Wajib diisi.

Menentukan kunci SSH yang diunggah ke untuk Secure Files diinstal pada agen.


addEntryToConfig - Menambahkan entri ke konfigurasi SSH
boolean. Nilai default: false.

Opsional. Menambahkan entri yang terkait dengan kunci yang diinstal ke file konfigurasi SSH. File kunci akan tersedia untuk semua tugas berikutnya.


configHostAlias - Alias
string. Diperlukan saat addEntryToConfig = true.

Menentukan nama entri konfigurasi SSH.


configHostname - Nama host
string. Diperlukan saat addEntryToConfig = true.

Menentukan properti nama host entri konfigurasi SSH.


configUser - Pengguna
string. Opsional. Gunakan saat addEntryToConfig = true.

Menentukan properti nama pengguna dari entri konfigurasi SSH.


configPort - Port
string. Opsional. Gunakan saat addEntryToConfig = true.

Menentukan port entri konfigurasi SSH.


hostName - Entri Host yang Diketahui
string. Wajib diisi.

Menentukan entri kunci SSH untuk file known_hosts.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Gunakan tugas ini dalam alur untuk menginstal kunci SSH sebelum langkah build atau rilis.

Catatan

Tugas ini memerlukan Git Bash untuk Windows pada agen.

Penggunaan dan praktik terbaik

Jika Anda menginstal kunci SSH di kumpulan yang dihosting, di langkah-langkah selanjutnya di alur Anda, Anda dapat terhubung ke sistem jarak jauh tempat kunci publik yang cocok sudah ada. Misalnya, Anda dapat menyambungkan ke repositori Git atau ke VM di Azure.

Kami menyarankan agar Anda tidak meneruskan kunci publik Anda sebagai teks biasa ke konfigurasi tugas. Sebagai gantinya, atur variabel rahasia di alur Anda untuk konten file Anda mykey.pub . Kemudian, panggil variabel dalam definisi alur Anda sebagai $(myPubKey). Untuk bagian rahasia kunci Anda, gunakan pustaka File Aman di Azure Pipelines.

Untuk membuat tugas Anda, gunakan contoh tugas Instal Kunci SSH yang dikonfigurasi dengan baik:

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

Catatan

Kunci publik Anda harus ditambahkan ke repositori\organisasi; jika tidak, akan ada masalah akses. Untuk GitHub, ikuti panduan di atas. Untuk Layanan Azure DevOps, gunakan Tambahkan kunci publik ke Azure DevOps Services/TFS.

Menginstal beberapa kunci SSH dalam pekerjaan alur yang sama

Saat menggunakan lebih dari satu kunci dalam pekerjaan alur yang sama, kunci pertama digunakan secara default. Agar dapat menggunakan kunci yang diinginkan saat membuat koneksi SSH, Anda dapat menggunakan Advanced bagian tugas untuk mengatur parameter berikut: addEntryToConfig, , configHostAliasconfigHostname, configUser, dan configPortInstallSSHKey .

Parameter ini memungkinkan Anda menambahkan host ke file konfigurasi SSH (misalnya, /root/.ssh/config untuk Linux) untuk menggunakannya dalam skrip kustom melalui alias.

Setelah build selesai, tugas akan mencoba memulihkan file konfigurasi SSH asli. Jika awalnya tidak ada file konfigurasi SSH, maka host akan dihapus dari agen.

Contoh penginstalan beberapa kunci SSH. Kasus dengan beberapa repositori GitHub dan kuncinya sendiri untuk masing-masing:

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

Dokumen GitHub terkait.

Contoh

Contoh penyiapan menggunakan GitHub

Bagian ini menjelaskan cara menggunakan repositori GitHub privat dengan YAML dari dalam Azure Pipelines.

Jika Anda memiliki repositori yang tidak ingin Anda ekspos ke komunitas sumber terbuka, praktik umumnya adalah membuat repositori privat. Namun, alat CI/CD seperti Azure DevOps memerlukan akses ke repositori jika Anda ingin menggunakan alat untuk mengelola repositori. Untuk memberi Azure DevOps akses, Anda mungkin memerlukan kunci SSH untuk mengautentikasi akses ke GitHub.

Berikut adalah langkah-langkah untuk menggunakan kunci SSH untuk mengautentikasi akses ke GitHub:

  1. Buat pasangan kunci yang akan digunakan untuk mengautentikasi akses dari GitHub ke Azure DevOps:

    1. Di GitBash, jalankan perintah berikut:

      ssh-keygen -t rsa
      
    2. Masukkan nama untuk pasangan kunci SSH. Dalam contoh kami, kami menggunakan myKey.

      Cuplikan layar permintaan GitBash untuk memasukkan nama untuk pasangan kunci SSH Anda.

    3. (Opsional) Anda dapat memasukkan frase sandi untuk mengenkripsi kunci privat Anda. Langkah ini bersifat opsional. Menggunakan frase sandi lebih aman daripada tidak menggunakannya.

      Cuplikan layar permintaan GitBash untuk memasukkan frasa sandi untuk pasangan kunci SSH Anda.

      ssh-keygen membuat pasangan kunci SSH, dan pesan keberhasilan berikut muncul:

      Cuplikan layar pesan GitBash yang menunjukkan bahwa pasangan kunci SSH dibuat.

    4. Di Windows File Explorer, periksa pasangan kunci yang baru dibuat:

      Cuplikan layar file pasangan kunci di Windows File Explorer.

  2. Tambahkan kunci publik ke repositori GitHub. (Kunci umum berakhiran ".pub"). Untuk melakukan ini, buka URL berikut di browser Anda: https://github.com/(organization-name)/(repository-name)/settings/keys.

    1. Pilih Tambahkan kunci penyebaran.

    2. Dalam kotak dialog Tambahkan baru , masukkan judul, lalu salin dan tempel kunci SSH:

      Cuplikan layar kotak dialog Tambahkan baru.

    3. Pilih Tambahkan kunci.

  3. Unggah kunci privat Anda ke Azure DevOps:

    1. Di Azure DevOps, di menu sebelah kiri, pilihPustakaAlur>.

      Cuplikan layar menu Azure Pipelines.

    2. Pilih File aman>+ File aman:

      Cuplikan layar menu Amankan file.

    3. Pilih Telusuri, lalu pilih kunci privat Anda:

      Cuplikan layar kotak dialog Unggah file dan tombol Telusuri.

  4. Pulihkan "Entri Host yang Diketahui". Di GitBash, masukkan perintah berikut:

    ssh-keyscan github.com
    

    "Entri Host yang Diketahui" Anda adalah nilai yang ditampilkan yang tidak dimulai dengan # di hasil GitBash:

    Cuplikan layar hasil pencarian utama di GitBash.

  5. Buat alur YAML.

    Untuk membuat alur YAML, dalam definisi YAML, tambahkan tugas berikut:

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

Kunci SSH sekarang diinstal, dan Anda dapat melanjutkan dengan skrip untuk terhubung dengan menggunakan SSH, dan bukan HTTPS default.

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Tugas ini berjalan menggunakan pembatasan perintah berikut: dibatasi
Variabel yang dapat diatur Tugas ini memiliki izin untuk mengatur variabel berikut: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION
Versi agen 2.182.1 atau lebih tinggi
Kategori tugas Utilitas
Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 2.117.0 atau lebih tinggi
Kategori tugas Utilitas