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
, , configHostAlias
configHostname
, configUser
, dan configPort
InstallSSHKey
.
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
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:
Buat pasangan kunci yang akan digunakan untuk mengautentikasi akses dari GitHub ke Azure DevOps:
Di GitBash, jalankan perintah berikut:
ssh-keygen -t rsa
Masukkan nama untuk pasangan kunci SSH. Dalam contoh kami, kami menggunakan myKey.
(Opsional) Anda dapat memasukkan frase sandi untuk mengenkripsi kunci privat Anda. Langkah ini bersifat opsional. Menggunakan frase sandi lebih aman daripada tidak menggunakannya.
ssh-keygen
membuat pasangan kunci SSH, dan pesan keberhasilan berikut muncul:Di Windows File Explorer, periksa pasangan kunci yang baru dibuat:
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
.Pilih Tambahkan kunci penyebaran.
Dalam kotak dialog Tambahkan baru , masukkan judul, lalu salin dan tempel kunci SSH:
Pilih Tambahkan kunci.
Unggah kunci privat Anda ke Azure DevOps:
Di Azure DevOps, di menu sebelah kiri, pilihPustakaAlur>.
Pilih File aman>+ File aman:
Pilih Telusuri, lalu pilih kunci privat Anda:
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:
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 |