Langkah cepat: Buat dan gunakan pasangan kunci privat-publik SSH untuk Linux VM di Azure.

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Dengan pasangan kunci secure shell (SSH), Anda dapat membuat komputer virtual (VM) di Azure yang menggunakan kunci SSH untuk autentikasi. Artikel ini menunjukkan kepada Anda cara cepat menghasilkan dan menggunakan pasangan file kunci publik-pribadi SSH untuk Linux VM. Anda dapat menyelesaikan langkah-langkah ini dengan Azure Cloud Shell, host macOS, atau Linux.

Untuk bantuan pemecahan masalah dengan SSH, lihat Memecahkan masalah koneksi SSH ke Azure Linux VM yang gagal, mengalami kesalahan, atau ditolak.

Catatan

VM yang dibuat menggunakan kunci SSH secara default yang dikonfigurasikan dengan kata sandi yang dinonaktifkan, yang sangat meningkatkan kesulitan serangan tebakan brute-force.

Untuk latar belakang dan contoh lainnya, lihat Langkah-langkah mendetail untuk membuat pasangan kunci SSH.

Untuk cara tambahan untuk menghasilkan dan menggunakan tombol SSH di komputer Windows, lihat Cara menggunakan tombol SSH dengan Windows di Azure.

Format kunci SSH yang didukung

Azure saat ini mendukung pasangan kunci privat publik RSA protokol 2 (SSH-2) dengan panjang minimum 2048 bit. Format kunci lainnya seperti ED25519 dan ECDSA tidak didukung.

Membuat pasangan kunci SSH

Gunakan perintah ssh-keygen untuk menghasilkan file kunci publik SSH dan pribadi. Secara default, file ini dibuat dalam direktori ~/.ssh. Anda dapat menentukan lokasi yang berbeda, dan kata sandi opsional (frasa sandi) untuk mengakses file kunci pribadi. Jika pasangan kunci SSH dengan nama yang sama ada di lokasi tertentu, file-file tersebut ditimpa.

Perintah berikut membuat pasangan kunci SSH menggunakan enkripsi RSA dan panjang bit 4096:

ssh-keygen -m PEM -t rsa -b 4096

Catatan

Anda juga dapat membuat pasangan kunci dengan Azure CLI dengan perintah az sshkey create, seperti yang dijelaskan dalam Membuat dan menyimpan kunci SSH.

Jika Anda menggunakan Azure CLI untuk membuat VM Anda dengan perintah az vm create, Anda dapat secara opsional membuat file kunci pribadi dan publik SSH dengan opsi --generate-ssh-keys. File kunci disimpan dalam direktori ~/.ssh kecuali ditentukan sebaliknya dengan opsi --ssh-dest-key-path. Jika pasangan kunci ssh sudah ada dan --generate-ssh-keys opsi digunakan, pasangan kunci baru tidak akan dihasilkan tetapi sebaliknya pasangan kunci yang ada akan digunakan. Dalam perintah berikut, ganti VMname, RGname, dan UbuntuLTS dengan nilai Anda sendiri:

az vm create --name VMname --resource-group RGname --image Ubuntu2204 --generate-ssh-keys

Berikan kunci publik SSH saat menyebarkan VM

Untuk membuat Linux VM yang menggunakan kunci SSH untuk autentikasi, tentukan kunci publik SSH Anda saat membuat VM menggunakan portal Azure, Azure CLI, templat Azure Resource Manager, atau metode lainnya:

Jika Anda tidak terbiasa dengan format kunci publik SSH, Anda dapat menampilkan kunci publik dengan perintah cat berikut, mengganti ~/.ssh/id_rsa.pub dengan jalur dan nama file file kunci publik Anda sendiri jika diperlukan:

cat ~/.ssh/id_rsa.pub

Nilai kunci publik yang khas terlihat seperti contoh ini:

ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname

Jika Anda menyalin dan menempelkan konten file kunci publik untuk digunakan di portal Azure atau templat Resource Manager, pastikan Anda tidak menyalin spasi di belakang. Untuk menyalin kunci publik di macOS, Anda dapat mengirim file kunci publik ke pbcopy. Demikian pula di Linux, Anda dapat mengirim file kunci publik ke program seperti xclip.

Kunci publik yang Anda tempatkan di Linux VM di Azure secara default disimpan di ~/.ssh/id_rsa.pub, kecuali Anda menentukan lokasi yang berbeda saat Anda membuat pasangan kunci. Untuk menggunakan Azure CLI 2.0 untuk membuat VM Anda dengan kunci publik yang sudah ada, tentukan nilai atau lokasi secara opsional kunci umum ini menggunakan perintah az vm create dengan opsi --ssh-key-values. Dalam perintah berikut, ganti myVM, myResourceGroup, UbuntuLTS, azureuser, dan mysshkey.pub dengan nilai Anda sendiri:

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --ssh-key-values mysshkey.pub

Jika Anda ingin menggunakan beberapa kunci SSH dengan VM, Anda dapat memasukkannya dalam daftar yang dipisahkan koma, seperti ini --ssh-key-values sshkey-desktop.pub, sshkey-laptop.pub.

SSH ke dalam VM Anda

Dengan kunci umum yang disebarkan pada VM Azure Anda, dan kunci pribadi pada sistem lokal Anda, SSH ke VM Anda menggunakan alamat IP atau nama DNS VM Anda. Di perintah berikut, ganti azureuser dan myvm.westus.cloudapp.azure.com dengan nama pengguna admin dan nama domain (atau alamat IP) yang sepenuhnya memenuhi syarat:

ssh azureuser@myvm.westus.cloudapp.azure.com

Jika Anda terhubung ke VM ini untuk pertama kalinya, Anda akan diminta untuk memverifikasi sidik jari host. Sangat menggoda untuk menerima sidik jari yang disajikan, tetapi pendekatan itu mengekspos Anda ke kemungkinan serangan orang-di-tengah. Anda harus selalu memvalidasi sidik jari host. Anda perlu melakukan ini hanya saat pertama kali Anda tersambung dari klien. Untuk mendapatkan sidik jari host melalui portal, gunakan fitur Run Command untuk menjalankan perintah ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Screenshot showing using the Run Command to validate the host fingerprint.

Untuk menjalankan perintah menggunakan CLI, gunakan az vm run-command invoke.

Jika Anda menentukan frase sandi saat membuat pasangan kunci, masukkan frase sandi saat diminta selama proses masuk. VM ditambahkan ke file ~/.ssh/known_hosts Anda, dan Anda tidak akan diminta untuk menyambungkan lagi sampai kunci publik pada perubahan Azure VM Anda atau nama server dihapus dari ~/.ssh/known_hosts.

Jika VM menggunakan kebijakan akses tepat waktu, Anda perlu meminta akses sebelum dapat tersambung ke VM. Untuk informasi selengkapnya tentang kebijakan tepat waktu, lihat Mengelola akses komputer virtual menggunakan kebijakan tepat waktu.

Langkah berikutnya