Bagikan melalui


Masuk ke komputer virtual Linux di Azure dengan menggunakan MICROSOFT Entra ID dan OpenSSH

Untuk meningkatkan keamanan komputer virtual (VM) Linux di Azure, Anda dapat berintegrasi dengan autentikasi Microsoft Entra. Anda sekarang dapat menggunakan MICROSOFT Entra ID sebagai platform autentikasi inti dan otoritas sertifikat untuk SSH ke VM Linux dengan menggunakan ID Microsoft Entra dan autentikasi berbasis sertifikat OpenSSH. Fungsionalitas ini memungkinkan organisasi mengelola akses ke VM dengan kontrol akses berbasis peran Azure (RBAC) dan kebijakan Akses Bersyar.

Artikel ini menunjukkan kepada Anda cara membuat dan mengonfigurasi VM Linux dan masuk dengan MICROSOFT Entra ID dengan menggunakan autentikasi berbasis sertifikat OpenSSH.

Ada banyak manfaat keamanan menggunakan ID Microsoft Entra dengan autentikasi berbasis sertifikat OpenSSH untuk masuk ke VM Linux di Azure. Mereka meliputi:

  • Gunakan kredensial Microsoft Entra Anda untuk masuk ke Azure Linux VM.
  • Dapatkan autentikasi berbasis kunci SSH tanpa perlu mendistribusikan kunci SSH kepada pengguna atau memprovisikan kunci publik SSH pada VM Linux Azure apa pun yang Anda sebarkan. Pengalaman ini jauh lebih sederhana daripada harus khawatir tentang genggaman kunci umum SSH kedaluarsa yang dapat menyebabkan akses yang tidak sah.
  • Kurangi keterganungan pada akun administrator lokal, pencurian kredensial, dan kredensial yang lemah.
  • Bantu amankan VM Linux dengan mengonfigurasi kompleksitas kata sandi dan kebijakan masa pakai kata sandi untuk ID Microsoft Entra.
  • Dengan RBAC, tentukan siapa yang dapat masuk ke VM sebagai pengguna biasa atau dengan hak istimewa administrator. Saat pengguna bergabung dengan tim, Anda dapat memperbarui kebijakan Azure RBAC agar VM memberikan akses yang sesuai. Saat karyawan meninggalkan organisasi Anda dan akun pengguna mereka dinonaktifkan atau dihapus dari ID Microsoft Entra, mereka tidak lagi memiliki akses ke sumber daya Anda.
  • Dengan Akses Bersyarat, konfigurasikan kebijakan untuk mewajibkan autentikasi multifaktor atau mengharuskan perangkat klien Anda dikelola (misalnya, patuh atau gabungan hibrid Microsoft Entra) sebelum Anda dapat menggunakannya SSH ke VM Linux.
  • Gunakan kebijakan penyebaran dan audit Azure untuk mewajibkan masuk Microsoft Entra untuk VM Linux dan menandai akun lokal yang tidak disetujui.

Masuk ke VM Linux dengan MICROSOFT Entra ID berfungsi untuk pelanggan yang menggunakan Layanan Federasi Direktori Aktif.

Distribusi Linux dan wilayah Azure yang didukung

Distribusi Linux berikut saat ini didukung untuk penyebaran di wilayah yang didukung:

Distribusi Versi
Common Base Linux Mariner (CBL-Mariner) CBL-Mariner 1, CBL-Mariner 2
AlmaLinux AlmaLinux 8, AlmaLinux 9
Debian Debian 9, Debian 10, Debian 11, Debian 12
openSUSE openSUSE Leap 42.3, openSUSE Leap 15.1+
Oracle Oracle Linux 8, Oracle Linux 9
RedHat Enterprise Linux (RHEL) RHEL 7.4 ke RHEL 7.9, RHEL 8.3+, RHEL 9.0+
Rocky Rocky 8, Rocky 9
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1+
Ubuntu Ubuntu 16.04 ke Ubuntu 24.04

Wilayah Azure berikut saat ini didukung untuk fitur ini:

  • Azure Global
  • Azure Government
  • Microsoft Azure dioperasikan oleh 21Vianet

Penggunaan ekstensi SSH untuk Azure CLI pada kluster Azure Kubernetes Service (AKS) tidak didukung. Untuk informasi selengkapnya, lihat Kebijakan dukungan untuk AKS.

Jika Anda memilih untuk menginstal dan menggunakan Azure CLI secara lokal, itu harus versi 2.22.1 atau yang lebih baru. Jalankan az --version untuk menemukan versi. Jika Anda perlu menginstal atau meningkatkan, lihat Menginstal Azure CLI.

Nota

Fungsionalitas ini juga tersedia untuk server dengan dukungan Azure Arc.

Memenuhi persyaratan untuk masuk dengan MICROSOFT Entra ID menggunakan autentikasi berbasis sertifikat OpenSSH

Untuk mengaktifkan login Microsoft Entra melalui autentikasi berbasis sertifikat SSH untuk VM Linux di Azure, pastikan untuk memenuhi persyaratan jaringan, komputer virtual, dan klien (klien SSH) berikut.

Jaringan

Konfigurasi jaringan VM harus mengizinkan akses keluar ke titik akhir berikut melalui port TCP 443.

Azure Global:

  • https://packages.microsoft.com: Untuk penginstalan dan peningkatan paket.
  • http://169.254.169.254: Titik akhir Azure Instance Metadata Service.
  • https://login.microsoftonline.com: Untuk alur autentikasi berbasis PAM (modul autentikasi yang dapat dicolokkan).
  • https://pas.windows.net: Untuk alur Azure RBAC.

Azure Government:

  • https://packages.microsoft.com: Untuk penginstalan dan peningkatan paket.
  • http://169.254.169.254: Titik akhir Azure Instance Metadata Service.
  • https://login.microsoftonline.us: Untuk alur autentikasi berbasis PAM.
  • https://pasff.usgovcloudapi.net: Untuk alur Azure RBAC.

Microsoft Azure dioperasikan oleh 21Vianet:

  • https://packages.microsoft.com: Untuk penginstalan dan peningkatan paket.
  • http://169.254.169.254: Titik akhir Azure Instance Metadata Service.
  • https://login.chinacloudapi.cn: Untuk alur autentikasi berbasis PAM.
  • https://pas.chinacloudapi.cn: Untuk alur Azure RBAC.

Komputer virtual

Pastikan VM Anda dikonfigurasi dengan fungsionalitas berikut:

  • Identitas terkelola yang ditetapkan sistem. Opsi ini secara otomatis dipilih saat Anda menggunakan portal Azure untuk membuat VM dan memilih opsi masuk Microsoft Entra. Anda juga dapat mengaktifkan identitas terkelola yang ditetapkan sistem pada VM baru atau yang sudah ada dengan menggunakan Azure CLI.
  • aadsshlogin dan aadsshlogin-selinux (sebagaimana mewajarkan). Paket ini diinstal dengan ekstensi VM AADSSHLoginForLinux. Ekstensi diinstal saat Anda menggunakan portal Azure atau Azure CLI untuk membuat VM dan mengaktifkan login Microsoft Entra (tab Manajemen).

Klien

Pastikan klien Anda memenuhi persyaratan berikut:

  • Dukungan klien SSH untuk sertifikat berbasis OpenSSH untuk autentikasi. Anda dapat menggunakan Azure CLI (2.21.1 atau yang lebih baru) dengan OpenSSH (disertakan dalam Windows 10 versi 1803 atau yang lebih baru) atau Azure Cloud Shell untuk memenuhi persyaratan ini.

  • Ekstensi SSH untuk Azure CLI. Anda dapat menginstal ekstensi ini dengan menggunakan az extension add --name ssh. Anda tidak perlu menginstal ekstensi ini saat menggunakan Azure Cloud Shell, karena ekstensi ini telah diinstal sebelumnya.

    Jika Anda menggunakan klien SSH selain Azure CLI atau Azure Cloud Shell yang mendukung sertifikat OpenSSH, Anda masih harus menggunakan Azure CLI dengan ekstensi SSH untuk mengambil sertifikat SSH sesaat dan secara opsional file konfigurasi. Anda kemudian dapat menggunakan file konfigurasi dengan klien SSH Anda.

  • Konektivitas TCP dari klien ke alamat IP publik atau privat VM. (Penerusan ProxyCommand atau SSH ke komputer dengan konektivitas juga berfungsi.)

Penting

Klien SSH berdasarkan PuTTY sekarang mendukung sertifikat OpenSSH dan dapat digunakan untuk masuk dengan autentikasi berbasis sertifikat Microsoft Entra OpenSSH.

Mengaktifkan login Microsoft Entra untuk VM Linux di Azure

Untuk menggunakan login Microsoft Entra untuk VM Linux di Azure, Anda harus terlebih dahulu mengaktifkan opsi masuk Microsoft Entra untuk VM Linux Anda. Anda kemudian mengonfigurasi penetapan peran Azure untuk pengguna yang berwenang untuk masuk ke VM. Terakhir, Anda menggunakan klien SSH yang mendukung OpenSSH, seperti Azure CLI atau Azure Cloud Shell, untuk SSH ke VM Linux Anda.

Ada dua cara untuk mengaktifkan login Microsoft Entra untuk VM Linux Anda:

  • Pengalaman portal Azure saat Anda membuat VM Linux
  • Pengalaman Azure Cloud Shell saat Anda membuat VM Linux atau menggunakan yang sudah ada

portal Azure

Anda dapat mengaktifkan login Microsoft Entra untuk salah satu distribusi Linux yang didukung dengan menggunakan portal Azure.

Misalnya, untuk membuat VM dukungan jangka panjang (LTS) Ubuntu Server 18.04 di Azure dengan login Microsoft Entra:

  1. Masuk ke portal Azure dengan menggunakan akun yang memiliki akses untuk membuat VM, lalu pilih + Buat sumber daya.
  2. Pilih Buat di bawah Ubuntu Server 18.04 LTS dalam tampilan Populer .
  3. Pada tab Manajemen :
    1. Pilih kotak centang Masuk dengan MICROSOFT Entra ID .
    2. Pastikan bahwa kotak centang Identitas terkelola yang ditetapkan sistem dipilih.
  4. Pergi melalui sisa pengalaman membuat komputer virtual. Anda harus membuat akun administrator dengan nama pengguna dan kata sandi atau kunci publik SSH.

Azure Cloud Shell

Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Alat Azure umum telah diinstal sebelumnya dan dikonfigurasi di Cloud Shell untuk Anda gunakan dengan akun Anda. Cukup pilih tombol Salin untuk menyalin kode, tempelkan di Cloud Shell, lalu pilih tombol Enter untuk menjalankannya.

Ada beberapa cara untuk membuka Cloud Shell:

  • Pilih Coba di sudut kanan atas blok kode.
  • Buka Cloud Shell di browser Anda.
  • Pilih tombol Cloud Shell pada menu di sudut kanan atas portal Azure.

Jika Anda memilih untuk menginstal dan menggunakan Azure CLI secara lokal, artikel ini mengharuskan Anda menggunakan versi 2.22.1 atau yang lebih baru. Jalankan az --version untuk menemukan versi. Jika Anda perlu menginstal atau meningkatkan, lihat Menginstal Azure CLI.

  1. Buat grup sumber daya dengan menjalankan az group create.
  2. Buat VM dengan menjalankan az vm create. Gunakan distribusi yang didukung di wilayah yang didukung.
  3. Instal ekstensi VM masuk Microsoft Entra dengan menggunakan set ekstensi az vm.

Contoh berikut menyebarkan VM lalu menginstal ekstensi untuk mengaktifkan login Microsoft Entra untuk VM Linux. Ekstensi VM adalah aplikasi kecil yang menyediakan konfigurasi pasca-penyebaran dan tugas otomatisasi di Azure Virtual Machines. Sesuaikan contoh sesuai kebutuhan untuk mendukung persyaratan pengujian Anda.

az group create --name AzureADLinuxVM --location southcentralus
az vm create \
    --resource-group AzureADLinuxVM \
    --name myVM \	
    --image Ubuntu2204 \
    --assign-identity \
    --admin-username azureuser \
    --generate-ssh-keys
az vm extension set \
    --publisher Microsoft.Azure.ActiveDirectory \
    --name AADSSHLoginForLinux \
    --resource-group AzureADLinuxVM \
    --vm-name myVM

Dibutuhkan beberapa menit untuk membuat VM dan sumber daya pendukung.

Ekstensi AADSSHLoginForLinux dapat diinstal pada VM Linux (distribusi yang didukung) yang ada dengan agen VM yang sedang berjalan untuk mengaktifkan autentikasi Microsoft Entra. Jika Anda menyebarkan ekstensi ini ke VM yang dibuat sebelumnya, VM harus memiliki setidaknya 1 GB memori yang dialokasikan atau penginstalan akan gagal.

Nilai provisioningState Succeeded muncul ketika ekstensi berhasil diinstal pada VM. VM harus memiliki agen VM yang sedang berjalan untuk menginstal ekstensi.

Mengonfigurasi penetapan peran untuk VM

Setelah membuat VM, Anda perlu menetapkan salah satu peran Azure berikut untuk menentukan siapa yang dapat masuk ke VM. Untuk menetapkan peran ini, Anda harus memiliki peran Administrator Akses Data Komputer Virtual, atau peran apa pun yang menyertakan Microsoft.Authorization/roleAssignments/write tindakan seperti peran Administrator Kontrol Akses Berbasis Peran. Namun, jika Anda menggunakan peran yang berbeda dari Administrator Akses Data Komputer Virtual, kami sarankan Anda menambahkan kondisi untuk mengurangi izin untuk membuat penetapan peran.

  • Login Administrator Komputer Virtual: Pengguna yang memiliki peran ini yang ditetapkan dapat masuk ke komputer virtual Azure dengan hak istimewa administrator.
  • Login Pengguna Komputer Virtual: Pengguna yang memiliki peran ini yang ditetapkan dapat masuk ke komputer virtual Azure dengan hak istimewa pengguna reguler.

Untuk mengizinkan pengguna masuk ke VM melalui SSH, Anda harus menetapkan peran Masuk Administrator Komputer Virtual atau Login Pengguna Komputer Virtual pada grup sumber daya yang berisi VM dan jaringan virtual terkait, antarmuka jaringan, alamat IP publik, atau sumber daya load balancer.

Pengguna Azure yang memiliki peran Pemilik atau Kontributor yang ditetapkan untuk VM tidak secara otomatis memiliki hak istimewa untuk Microsoft Entra masuk ke VM melalui SSH. Ada pemisahan yang disengaja (dan diaudit) antara sekumpulan orang yang mengontrol komputer virtual dan sekumpulan orang yang dapat mengakses komputer virtual.

Ada dua cara untuk mengonfigurasi penetapan peran untuk VM:

  • pengalaman portal Azure
  • Pengalaman Azure Cloud Shell

Nota

Peran Login Administrator Komputer Virtual dan Login Pengguna Komputer Virtual menggunakan dataActions dan dapat ditetapkan di grup manajemen, langganan, grup sumber daya, atau cakupan sumber daya. Kami menyarankan agar Anda menetapkan peran di tingkat grup manajemen, langganan, atau grup sumber daya dan bukan di tingkat VM individual. Praktik ini menghindari risiko mencapai batas penetapan peran Azure per langganan.

portal Azure

Untuk mengonfigurasi penetapan peran untuk VM Linux berkemampuan ID Microsoft Entra Anda:

  1. Untuk Grup Sumber Daya, pilih grup sumber daya yang berisi VM dan jaringan virtual terkait, antarmuka jaringan, alamat IP publik, atau sumber daya load balancer.

  2. Pilih Kontrol akses (IAM).

  3. Pilih Tambahkan>penetapan peran untuk membuka halaman Tambahkan penetapan peran.

  4. Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure dengan menggunakan portal Azure.

    Pengaturan Nilai
    Peranan Login Administrator Komputer Virtual atau Login Pengguna Komputer Virtual
    Menetapkan akses ke Pengguna, grup, perwakilan layanan, atau identitas terkelola

    Cuplikan layar yang memperlihatkan halaman untuk menambahkan penetapan peran.

Setelah beberapa saat, prinsip keamanan diberi peran pada cakupan yang dipilih.

Azure Cloud Shell

Contoh berikut menggunakan buat penetapan peran az untuk menetapkan peran Masuk Administrator Komputer Virtual ke VM untuk pengguna Azure Anda saat ini. Anda mendapatkan nama pengguna akun Azure Anda saat ini dengan menggunakan az account show, dan Anda mengatur cakupan ke VM yang dibuat pada langkah sebelumnya dengan menggunakan az vm show.

Anda juga dapat menetapkan cakupan di grup sumber daya atau tingkat langganan. Izin pewarisan Azure RBAC normal berlaku.

username=$(az account show --query user.name --output tsv)
rg=$(az group show --resource-group myResourceGroup --query id -o tsv)

az role assignment create \
    --role "Virtual Machine Administrator Login" \
    --assignee $username \
    --scope $rg

Nota

Jika domain Microsoft Entra dan domain nama pengguna masuk Anda tidak cocok, Anda harus menentukan ID objek akun pengguna Anda dengan menggunakan --assignee-object-id, bukan hanya nama pengguna untuk --assignee. Anda dapat memperoleh ID objek untuk akun pengguna Anda dengan menggunakan az ad user list.

Untuk informasi selengkapnya tentang cara menggunakan Azure RBAC untuk mengelola akses ke sumber daya langganan Azure Anda, lihat Langkah-langkah untuk menetapkan peran Azure.

Menginstal ekstensi SSH untuk Azure CLI

Jika Anda menggunakan Azure Cloud Shell, tidak ada penyiapan lain yang diperlukan karena versi minimum azure CLI dan ekstensi SSH untuk Azure CLI sudah disertakan dalam lingkungan Cloud Shell.

Jalankan perintah berikut untuk menambahkan ekstensi SSH untuk Azure CLI:

az extension add --name ssh

Versi minimum yang diperlukan untuk ekstensi adalah 0.1.4. Periksa versi yang diinstal dengan menggunakan perintah berikut:

az extension show --name ssh

Menerapkan kebijakan Akses Bersyar

Anda dapat menerapkan kebijakan Akses Bersyar yang diaktifkan dengan login Microsoft Entra, seperti:

  • Membutuhkan autentikasi multifaktor.
  • Memerlukan perangkat yang patuh atau gabungan hibrid Microsoft Entra untuk perangkat yang menjalankan klien SSH.
  • Memeriksa risiko sebelum mengotorisasi akses ke VM Linux di Azure.

Aplikasi yang muncul dalam kebijakan Akses Bersyarat disebut Masuk VM Azure Linux.

Nota

Penegakan kebijakan Akses Bersyarat yang memerlukan kepatuhan perangkat atau gabungan hibrid Microsoft Entra pada perangkat yang menjalankan klien SSH hanya berfungsi dengan Azure CLI yang berjalan di Windows dan macOS. Ini tidak didukung saat Anda menggunakan Azure CLI di Linux atau Azure Cloud Shell.

Aplikasi yang hilang

Jika aplikasi Masuk Azure Linux VM hilang dari Akses Bersyarat, pastikan aplikasi tidak ada di penyewa:

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi Cloud.
  2. Telusuri aplikasi Identity>Applications>Enterprise.
  3. Hapus filter untuk melihat semua aplikasi, dan cari Komputer Virtual. Jika Anda tidak melihat Microsoft Azure Linux Virtual Machine Sign-In sebagai hasilnya, perwakilan layanan hilang dari penyewa.

Masuk dengan menggunakan akun pengguna Microsoft Entra ke SSH ke VM Linux

Masuk dengan menggunakan Azure CLI

Masukkan az login. Perintah ini membuka jendela browser, tempat Anda dapat masuk dengan menggunakan akun Microsoft Entra Anda.

az login 

Kemudian masukkan az ssh vm. Contoh berikut secara otomatis menyelesaikan alamat IP yang sesuai untuk VM.

az ssh vm -n myVM -g AzureADLinuxVM

Jika diminta, masukkan kredensial masuk Microsoft Entra Anda di halaman masuk, lakukan autentikasi multifaktor, dan/atau penuhi pemeriksaan perangkat. Anda akan diminta hanya jika Anda adalah sesi Azure CLI belum memenuhi kriteria Akses Bersyarat yang diperlukan. Tutup jendela browser, kembali ke prompt SSH, dan Anda akan secara otomatis tersambung ke VM.

Anda sekarang masuk ke komputer virtual Linux dengan izin peran seperti yang ditetapkan, seperti Pengguna VM atau Administrator VM. Jika akun pengguna Anda diberi peran Masuk Administrator Komputer Virtual, Anda dapat menggunakan sudo untuk menjalankan perintah yang memerlukan hak istimewa root.

Masuk dengan menggunakan Azure Cloud Shell

Anda dapat menggunakan Azure Cloud Shell untuk menyambungkan ke VM tanpa perlu menginstal apa pun secara lokal ke komputer klien Anda. Mulai Cloud Shell dengan memilih ikon shell di sudut kanan atas portal Azure.

Cloud Shell secara otomatis terhubung ke sesi dalam konteks pengguna yang masuk. Sekarang jalankan az login lagi dan tembus alur masuk interaktif:

az login

Kemudian Anda dapat menggunakan perintah normal az ssh vm untuk menyambungkan dengan menggunakan nama dan grup sumber daya atau alamat IP VM:

az ssh vm -n myVM -g AzureADLinuxVM

Nota

Penegakan kebijakan Akses Bersyarat yang memerlukan kepatuhan perangkat atau gabungan hibrid Microsoft Entra tidak didukung saat Anda menggunakan Azure Cloud Shell.

Masuk dengan menggunakan perwakilan layanan Microsoft Entra ke SSH ke VM Linux

Azure CLI mendukung autentikasi dengan perwakilan layanan, bukan akun pengguna. Karena perwakilan layanan tidak terkait dengan pengguna tertentu, pelanggan dapat menggunakannya untuk SSH ke dalam VM untuk mendukung skenario otomatisasi apa pun yang mungkin mereka miliki. Perwakilan layanan harus memiliki hak Administrator VM atau Pengguna VM yang ditetapkan. Tetapkan izin di tingkat langganan atau grup sumber daya.

Contoh berikut akan menetapkan hak Administrator VM ke perwakilan layanan di tingkat grup sumber daya. Ganti tempat penampung untuk ID objek utama layanan, ID langganan, dan nama grup sumber daya.

az role assignment create \
    --role "Virtual Machine Administrator Login" \
    --assignee-object-id <service-principal-objectid> \
    --assignee-principal-type ServicePrincipal \
    --scope "/subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>"

Gunakan contoh berikut untuk mengautentikasi ke Azure CLI dengan menggunakan perwakilan layanan. Untuk informasi selengkapnya, lihat artikel Masuk ke Azure CLI dengan perwakilan layanan.

az login --service-principal -u <sp-app-id> -p <password-or-cert> --tenant <tenant-id>

Saat autentikasi dengan perwakilan layanan selesai, gunakan perintah Azure CLI SSH normal untuk menyambungkan ke VM:

az ssh vm -n myVM -g AzureADLinuxVM

Mengekspor konfigurasi SSH untuk digunakan dengan klien SSH yang mendukung OpenSSH

Masuk ke Azure Linux VM dengan Microsoft Entra ID mendukung ekspor sertifikat dan konfigurasi OpenSSH. Itu berarti Anda dapat menggunakan klien SSH apa pun yang mendukung sertifikat berbasis OpenSSH untuk masuk melalui ID Microsoft Entra. Contoh berikut mengekspor konfigurasi untuk semua alamat IP yang ditetapkan ke VM:

az ssh config --file ~/.ssh/config -n myVM -g AzureADLinuxVM

Atau, Anda dapat mengekspor konfigurasi hanya dengan menentukan alamat IP. Ganti alamat IP dalam contoh berikut dengan alamat IP publik atau privat untuk VM Anda. (Anda harus membawa konektivitas Anda sendiri untuk IP privat.) Masukkan az ssh config -h untuk bantuan dengan perintah ini.

az ssh config --file ~/.ssh/config --ip 10.11.123.456

Anda kemudian dapat terhubung ke VM melalui penggunaan OpenSSH normal. Koneksi dapat dilakukan melalui klien SSH apa pun yang menggunakan OpenSSH.

Jalankan sudo dengan login Microsoft Entra

Setelah pengguna yang diberi peran Administrator VM berhasil SSH ke VM Linux, mereka akan dapat menjalankan sudo tanpa persyaratan interaksi atau autentikasi lainnya. Pengguna yang diberi peran Pengguna VM tidak akan dapat menjalankan sudo.

Menyambungkan ke VM dalam set skala komputer virtual

Set skala komputer virtual didukung, tetapi langkah-langkahnya sedikit berbeda untuk mengaktifkan dan menyambungkan ke VM dalam set skala komputer virtual:

  1. Buat set skala komputer virtual atau pilih yang sudah ada. Aktifkan identitas terkelola yang ditetapkan sistem untuk set skala komputer virtual Anda:

    az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
    
  2. Instal ekstensi Microsoft Entra pada set skala komputer virtual Anda:

    az vmss extension set --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLoginForLinux --resource-group AzureADLinuxVM --vmss-name myVMSS
    

Set skala komputer virtual biasanya tidak memiliki alamat IP publik. Anda harus memiliki konektivitas ke komputer lain yang dapat menjangkau jaringan virtual Azure mereka. Contoh ini menunjukkan cara menggunakan IP privat VM dalam set skala komputer virtual untuk terhubung dari komputer di jaringan virtual yang sama:

az ssh vm --ip 10.11.123.456

Nota

Anda tidak dapat secara otomatis menentukan alamat IP VM set skala komputer virtual dengan menggunakan --resource-group sakelar dan --name .

Migrasi dari versi (pratinjau) sebelumnya

Jika Anda menggunakan versi login Microsoft Entra sebelumnya untuk Linux yang didasarkan pada alur kode perangkat, selesaikan langkah-langkah berikut dengan menggunakan Azure CLI:

  1. Hapus instalan ekstensi AADLoginForLinux pada VM:

    az vm extension delete -g MyResourceGroup --vm-name MyVm -n AADLoginForLinux
    

    Nota

    Penghapusan instalan ekstensi dapat gagal jika ada pengguna Microsoft Entra yang saat ini masuk di VM. Pastikan semua pengguna keluar terlebih dahulu.

  2. Aktifkan identitas terkelola yang ditetapkan sistem pada VM Anda:

    az vm identity assign -g myResourceGroup -n myVm
    
  3. Instal ekstensi AADSSHLoginForLinux pada VM:

    az vm extension set \
        --publisher Microsoft.Azure.ActiveDirectory \
        --name AADSSHLoginForLinux \
        --resource-group myResourceGroup \
        --vm-name myVM
    

Menggunakan Azure Policy untuk memenuhi standar dan menilai kepatuhan

Gunakan Azure Policy untuk:

  • Pastikan bahwa login Microsoft Entra diaktifkan untuk komputer virtual Linux baru dan yang sudah ada.
  • Menilai kepatuhan lingkungan Anda dalam skala besar di dasbor kepatuhan.

Dengan kemampuan ini, Anda dapat menggunakan banyak tingkat penegakan. Anda dapat menandai VM Linux baru dan yang sudah ada di lingkungan Anda yang tidak mengaktifkan login Microsoft Entra. Anda juga dapat menggunakan Azure Policy untuk menyebarkan ekstensi Microsoft Entra pada VM Linux baru yang tidak mengaktifkan login Microsoft Entra, serta memulihkan VM Linux yang ada ke standar yang sama.

Selain kemampuan ini, Anda dapat menggunakan Azure Policy untuk mendeteksi dan menandai VM Linux yang memiliki akun lokal yang tidak disetujui yang dibuat di komputer mereka. Untuk mempelajari selengkapnya, tinjau Azure Policy.

Memecahkan masalah masuk

Gunakan bagian berikut untuk memperbaiki kesalahan umum yang dapat terjadi saat Anda mencoba SSH dengan kredensial Microsoft Entra.

Tidak dapat mengambil token dari cache lokal

Jika Anda mendapatkan pesan yang mengatakan token tidak dapat diambil dari cache lokal, Anda harus menjalankan az login lagi dan melalui alur masuk interaktif. Tinjau bagian tentang masuk dengan menggunakan Azure Cloud Shell.

Akses ditolak: Peran Azure tidak ditetapkan

Jika Anda melihat kesalahan "Peran Azure tidak ditetapkan" pada perintah SSH Anda, verifikasi bahwa Anda telah mengonfigurasi kebijakan Azure RBAC untuk VM yang memberi pengguna peran Masuk Administrator Komputer Virtual atau peran Masuk Pengguna Komputer Virtual. Jika Anda mengalami masalah dengan penetapan peran Azure, lihat artikel Memecahkan Masalah Azure RBAC.

Masalah saat menghapus ekstensi lama (AADLoginForLinux)

Jika skrip penghapusan instalasi gagal, ekstensi mungkin macet dalam status transisi. Ketika ini terjadi, ekstensi dapat meninggalkan paket yang seharusnya dihapus instalasinya selama penghapusannya. Dalam kasus seperti itu, lebih baik menghapus instalan paket lama secara manual dan kemudian mencoba menjalankan az vm extension delete perintah.

Untuk menghapus instalan paket lama:

  1. Masuk sebagai pengguna lokal dengan hak istimewa admin.
  2. Pastikan tidak ada pengguna Microsoft Entra yang masuk. who -u Panggil perintah untuk melihat siapa yang masuk. Kemudian gunakan sudo kill <pid> untuk semua proses sesi yang dilaporkan perintah sebelumnya.
  3. Jalankan sudo apt remove --purge aadlogin (Ubuntu/Debian), sudo yum remove aadlogin (RHEL), atau sudo zypper remove aadlogin (openSUSE atau SLES).
  4. Jika perintah gagal, coba alat tingkat rendah dengan skrip dinonaktifkan:
    1. Untuk Ubuntu/Debian, jalankan sudo dpkg --purge aadlogin. Jika masih gagal karena skrip, hapus /var/lib/dpkg/info/aadlogin.prerm file dan coba lagi.
    2. Untuk segala sesuatu yang lain, jalankan rpm -e --noscripts aadogin.
  5. Ulangi langkah 3-4 untuk paket aadlogin-selinux.

Kesalahan penginstalan ekstensi

Penginstalan ekstensi VM AADSSHLoginForLinux ke komputer yang ada mungkin gagal dengan salah satu kode kesalahan yang diketahui berikut.

Kode keluar bukan nol 22

Jika Anda mendapatkan kode keluar 22, status ekstensi VM AADSSHLoginForLinux ditampilkan sebagai Transisi di portal.

Kegagalan ini terjadi karena identitas terkelola yang ditetapkan sistem diperlukan.

Solusinya adalah untuk:

  1. Hapus instalan ekstensi yang gagal.
  2. Aktifkan identitas terkelola yang ditetapkan sistem pada Azure VM.
  3. Jalankan perintah penginstalan ekstensi lagi.

Kode keluar bukan nol 23

Jika Anda mendapatkan kode keluar 23, status ekstensi VM AADSSHLoginForLinux ditampilkan sebagai Transisi di portal.

Kegagalan ini terjadi ketika ekstensi VM AADLoginForLinux yang lebih lama masih diinstal.

Solusinya adalah menghapus instalan ekstensi VM AADLoginForLinux yang lebih lama dari VM. Status ekstensi VM AADSSHLoginForLinux baru kemudian akan berubah menjadi Provisi berhasil di portal.

Kegagalan penginstalan saat menggunakan proksi HTTP

Ekstensi memerlukan koneksi HTTP untuk menginstal paket dan memeriksa keberadaan identitas sistem. Ini berjalan dalam konteks walinuxagent.service dan memerlukan perubahan untuk memberi tahu agen tentang pengaturan proksi. Buka /lib/systemd/system/walinuxagent.service file pada komputer target dan tambahkan baris berikut setelah [Service]:

[Service]
Environment="http_proxy=http://proxy.example.com:80/"
Environment="https_proxy=http://proxy.example.com:80/"
Environment="no_proxy=169.254.169.254"

Mulai ulang agen (sudo systemctl restart walinuxagent). Sekarang coba lagi.

Perintah az ssh vm gagal dengan KeyError access_token

az ssh vm Jika perintah gagal, Anda menggunakan versi klien Azure CLI yang sudah kedaluarsa.

Solusinya adalah meningkatkan klien Azure CLI ke versi 2.21.0 atau yang lebih baru.

Koneksi SSH ditutup

Setelah pengguna berhasil masuk dengan menggunakan az login, koneksi ke VM melalui az ssh vm -ip <address> atau az ssh vm --name <vm_name> -g <resource_group> mungkin gagal dengan "Koneksi ditutup oleh <ip_address> port 22."

Salah satu penyebab kesalahan ini adalah bahwa pengguna tidak ditetapkan ke peran Masuk Administrator Komputer Virtual atau Login Pengguna Komputer Virtual dalam cakupan VM ini. Dalam hal ini, solusinya adalah menambahkan pengguna ke salah satu peran Azure RBAC tersebut dalam cakupan VM ini.

Kesalahan ini juga dapat terjadi jika pengguna berada dalam peran Azure RBAC yang diperlukan, tetapi identitas terkelola yang ditetapkan sistem telah dinonaktifkan pada VM. Dalam hal ini, lakukan tindakan ini:

  1. Aktifkan identitas terkelola yang ditetapkan sistem pada VM.
  2. Izinkan beberapa menit untuk berlalu sebelum pengguna mencoba menyambungkan dengan menggunakan az ssh vm --ip <ip_address>.

Masalah koneksi dengan set skala komputer virtual

Koneksi VM dengan set skala komputer virtual dapat gagal jika instans set skala menjalankan model lama.

Meningkatkan instans set skala ke model terbaru mungkin menyelesaikan masalah, terutama jika peningkatan belum dilakukan sejak ekstensi Microsoft Entra Login diinstal. Meningkatkan instans menerapkan konfigurasi set skala standar ke instans individual.

Pernyataan AllowGroups atau DenyGroups di sshd_config menyebabkan proses masuk pertama gagal bagi pengguna Microsoft Entra

Jika sshd_config berisi pernyataan AllowGroups atau DenyGroups , login pertama gagal untuk pengguna Microsoft Entra. Jika pernyataan ditambahkan setelah pengguna berhasil masuk, mereka dapat masuk.

Salah satu solusinya adalah menghapus AllowGroups dan DenyGroups pernyataan dari sshd_config.

Solusi lain adalah memindahkan AllowGroups dan DenyGroups ke match user bagian di sshd_config. Pastikan templat kecocokan mengecualikan pengguna Microsoft Entra.

Mendapatkan Izin Ditolak saat mencoba menyambungkan dari Azure Shell ke VM Linux Red Hat/Oracle 7.X.

Versi server OpenSSH di target VM 7.4 terlalu lama. Versi tidak kompatibel dengan klien OpenSSH versi 8.8. Lihat sertifikat RSA SHA256 tidak lagi berfungsi untuk informasi selengkapnya.

Solusi sementara:

  • Menambahkan opsi "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" dalam az ssh vm perintah.
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
  • Menambahkan opsi "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" di /home/<user>/.ssh/config file.

Tambahkan ke "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com" dalam file konfigurasi klien.

Host *
PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com

Langkah berikutnya