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 jenis kunci berikut:
- Protokol SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) dengan panjang minimum 2048 bit
- ED25519 Keys dengan panjang tetap 256 bit
Format kunci lain seperti Elliptic-curve Diffie–Hellman (ECDH) dan Elliptic Curve Digital Signature Algorithm (ECDSA) saat ini 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 -f ~/.ssh/id_rsa.pem
Perintah berikut membuat pasangan kunci SSH menggunakan enkripsi ED25519 dengan panjang tetap 256 bit:
ssh-keygen -m PEM -t ed25519 -f ~/.ssh/id_ed25519.pem
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
Catatan
az sshkey create command deafults to RSA encryption dan tidak dapat digunakan untuk menghasilkan pasangan kunci ED25519, namun Anda dapat membuat pasangan kunci ED25519 menggunakan ssh-keygen seperti yang dijelaskan di atas dan kemudian menggunakan kunci publik tersebut untuk membuat VM.
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:
- Membuat komputer virtual Linux dengan portal Azure
- Membuat komputer virtual Linux dengan portal Azure CLI
- Membuat Linux VM menggunakan templat Azure
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:
Pasangan kunci RSA
cat ~/.ssh/id_rsa.pub
Nilai kunci publik RSA umum 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
pasangan kunci ED25519
cat ~/.ssh/id_ed25519.pub
Nilai kunci umum ED25519 umum terlihat seperti contoh ini:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRjWGWLeiUQ3U9fNnCsNpXIyACpD/Jbm09OZGsz3DIM 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 VM Linux di Azure secara default disimpan di bawah ~/.ssh/
direktori, kecuali Anda menentukan lokasi yang berbeda saat 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}'
.
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
Untuk informasi selengkapnya tentang bekerja dengan pasangan kunci SSH, lihat Langkah-langkah mendetail untuk membuat dan mengelola pasangan kunci SSH.
Jika Anda mengalami kesulitan dengan koneksi SSH ke Azure VM, lihat Memecahkan masalah koneksi SSH ke Azure Linux VM.