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 untuk mengelola akses ke mesin virtual dengan kebijakan kontrol akses berbasis peran (RBAC) Azure dan Akses Bersyarat.
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. Meliputi:
- Gunakan kredensial Microsoft Entra Anda untuk masuk ke Azure Linux VM.
- Mendapatkan autentikasi berbasis kunci SSH tanpa perlu mendistribusikan kunci SSH kepada pengguna atau menyediakan kunci publik SSH pada Mesin Virtual Azure Linux apa pun yang Anda sebarkan. Pengalaman ini jauh lebih sederhana daripada harus khawatir tentang kunci publik SSH yang sudah tidak berlaku dan tersebar yang dapat menyebabkan akses tidak sah.
- Kurangi ketergantungan pada akun administrator lokal, pencurian informasi masuk, dan informasi masuk 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 ke tim, Anda dapat memperbarui kebijakan Azure RBAC agar mesin virtual 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 yang didukung dan wilayah Azure
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 |
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+ |
SUSE Linux Enterprise Server (SLES) | SLES 12, SLES 15.1+ |
Ubuntu Server | Ubuntu Server 16.04 ke Ubuntu Server 22.04, semua versi minor setelah Ubuntu 22.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 AKS.
Jika Anda memilih untuk memasang dan menggunakan Azure CLI secara lokal, versinya harus 2.22.1 atau yang lebih baru. Jalankan az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, Pasang Azure CLI.
Catatan
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 mesin virtual harus mengizinkan akses outbound 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 Instance Metadata Service.https://login.microsoftonline.com
: Untuk alur autentikasi berbasis Privileged Access Management (modul autentikasi yang dapat di-plug).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 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 Instance Metadata Service.https://login.chinacloudapi.cn
: Untuk alur autentikasi berbasis PAM.https://pas.chinacloudapi.cn
: Untuk alur Azure RBAC.
Komputer virtual
Pastikan bahwa mesin virtual 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 sistem yang ditetapkan identitas terkelola pada mesin virtual baru atau yang sudah ada dengan menggunakan Azure CLI.
aadsshlogin
danaadsshlogin-selinux
(sewajarnya). Paket ini dipasang dengan ekstensi mesin virtual AADSSHLoginForLinux. Ekstensi diinstal saat Anda menggunakan portal Azure atau Azure CLI untuk membuat VM dan mengaktifkan login Microsoft Entra (tab Manajemen).
Klien
Pastikan bahwa klien Anda memenuhi persyaratan berikut:
Klien SSH mendukung 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 memasang ekstensi ini dengan menggunakan
az extension add --name ssh
. Anda tidak perlu memasang ekstensi ini saat menggunakan Azure Cloud Shell, karena sudah dipasang sebelumnya.Jika Anda menggunakan klien SSH apa pun selain Azure CLI atau Azure Cloud Shell yang mendukung sertifikat OpenSSH, Anda masih perlu menggunakan Azure CLI dengan ekstensi SSH untuk mengambil sertifikat SSH sementara dan secara opsional file konfigurasi. Anda kemudian dapat menggunakan file konfigurasi dengan klien SSH Anda.
Konektivitas TCP dari klien alamat IP privat atau publik dari mesin virtual. (Penerusan SSH atau ProxyCommand ke mesin 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 mesin virtual Linux Anda.
Ada dua cara untuk mengaktifkan login Microsoft Entra untuk VM Linux Anda:
- Pengalaman portal Azure saat Anda membuat mesin virtual Linux
- Pengalaman Azure Cloud Shell saat Anda membuat mesin virtual 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:
- Masuk ke portal Azure dengan menggunakan akun yang memiliki akses untuk membuat VM, lalu pilih + Buat sumber daya.
- Klik Buat pada Ubuntu Server 18.04 LTS di tampilan Populer.
- Pada tab Manajemen :
- Pilih kotak centang Masuk dengan MICROSOFT Entra ID .
- Pastikan bahwa kotak centang Identitas terkelola yang ditetapkan sistem dipilih.
- Lanjutkan sisa pengalaman membuat komputer virtual. Anda harus membuat akun administrator dengan nama pengguna dan kata sandi atau kunci umum SSH.
Azure Cloud Shell
Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Alat Common Azure telah diinstal sebelumnya dan dikonfigurasi di Cloud Shell untuk digunakan dengan akun Anda. Cukup pilih tombol Salin untuk menyalin kode, tempelkan di Cloud Shell, lalu pilih 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 Microsoft Azure.
Jika Anda memilih untuk memasang dan menggunakan Azure CLI secara lokal, artikel ini memerlukan Anda untuk menggunakan versi 2.22.1 atau yang lebih baru. Jalankan az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, Pasang Azure CLI.
- Buat grup sumber daya dengan menjalankan az group create.
- Buat mesin virtual dengan menjalankan az vm create. Gunakan distribusi yang didukung di wilayah yang didukung.
- 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 komputer virtual 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 mesin virtual yang dibuat sebelumnya, mesin virtual harus memiliki setidaknya memori sebesar 1 GB yang dialokasikan atau penginstalan akan gagal.
Nilai provisioningState
dari Succeeded
akan muncul saat ekstensi berhasil dipasang pada mesin virtual. Komputer virtual harus memiliki Agen komputer virtual 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 mesin virtual dan sekumpulan orang yang dapat mengakses mesin virtual.
Ada dua cara untuk mengonfigurasi penetapan peran untuk mesin virtual:
- Pengalaman portal Microsoft Azure
- Pengalaman Azure Cloud Shell
Catatan
Peran Masuk Administrator Mesin Virtual dan Masuk Pengguna Mesin Virtual menggunakan dataActions
dan dapat ditetapkan pada 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:
Untuk Grup Sumber Daya, pilih grup sumber daya yang berisi mesin virtual dan jaringan virtual terkait, antarmuka jaringan, alamat IP publik, atau sumber daya load balancer.
Pilih Kontrol akses (IAM).
Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.
Tetapkan peran berikut. Untuk langkah yang lebih detail, lihat Menetapkan peran Azure dengan menggunakan portal Azure.
Pengaturan Nilai Peran Masuk Administrator Mesin Virtual atau Masuk Pengguna Mesin Virtual Tetapkan akses ke Pengguna, grup, kepala layanan, atau identitas terkelola
Setelah beberapa saat, perwakilan keamanan akan ditetapkan peran di cakupan yang dipilih.
Azure Cloud Shell
Contoh berikut menggunakan buat penetapan peran AZ untuk menetapkan peran Log 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 cakupannya ke mesin virtual 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
Catatan
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 versi 0.1.4. Periksa versi terpasang dengan menggunakan perintah berikut:
az extension show --name ssh
Terapkan kebijakan Akses Bersyarat
Anda dapat menerapkan kebijakan Akses Bersyar yang diaktifkan dengan login Microsoft Entra, seperti:
- Memerlukan autentikasi multifaktor.
- Memerlukan perangkat yang patuh atau gabungan hibrid Microsoft Entra untuk perangkat yang menjalankan klien SSH.
- Memeriksa risiko sebelum mengotorisasi akses ke mesin virtual Linux di Azure.
Aplikasi yang muncul dalam kebijakan Akses Bersyarat disebut Masuk mesin virtual Azure Linux.
Catatan
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 Mesin Virtual Azure Linux hilang dari Akses Bersyarah, pastikan aplikasi tidak berada di penyewa:
- Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi Cloud.
- Telusuri aplikasi Identity>Applications>Enterprise.
- 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
Memasuki 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 komputer virtual.
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 permintaan SSH, dan Anda akan secara otomatis terhubung ke mesin virtual.
Anda sekarang masuk ke mesin virtual Linux dengan izin peran seperti yang ditetapkan, seperti Pengguna mesin virtual atau Administrator mesin virtual. Jika akun pengguna Anda diberi peran Virtual Machine Administrator Login, Anda dapat menggunakan sudo untuk menjalankan perintah yang memerlukan hak akar.
Masuk dengan menggunakan Azure Cloud Shell
Anda dapat menggunakan Azure Cloud Shell untuk terhubung ke mesin virtual 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 masuk melalui alur masuk interaktif:
az login
Kemudian Anda dapat menggunakan perintah az ssh vm
normal untuk terhubung dengan menggunakan nama dan grup sumber daya atau alamat IP mesin virtual:
az ssh vm -n myVM -g AzureADLinuxVM
Catatan
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 menerapkan SSH ke mesin virtual untuk mendukung skenario otomatisasi apa pun yang mungkin mereka miliki. Perwakilan layanan harus memiliki hak Administrator komputer virtual atau Pengguna komputer virtual yang ditetapkan. Menetapkan izin di tingkat langganan atau grup sumber daya.
Contoh berikut akan menetapkan hak Administrator komputer virtual kepada perwakilan layanan di tingkat grup sumber daya. Ganti tempat penampung untuk ID objek perwakilan 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
Ekspor 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 mesin virtual:
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 mesin virtual 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 komputer virtual melalui penggunaan OpenSSH normal. Koneksi dapat dilakukan melalui klien SSH apa pun yang menggunakan OpenSSH.
Jalankan sudo dengan login Microsoft Entra
Setelah pengguna yang ditetapkan peran Administrator mesin virtual berhasil melakukan SSH ke dalam mesin virtual Linux, mereka akan dapat menjalankan sudo tanpa persyaratan interaksi atau autentikasi lainnya. Pengguna yang ditetapkan peran Pengguna mesin virtual tidak akan dapat menjalankan sudo.
Menyambungkan ke mesin virtual dalam set skala mesin virtual
Set skala mesin virtual didukung, tetapi langkah-langka untuk mengaktifkan dan menghubungkan ke mesin virtual di set skala mesin virtual sedikit berbeda:
Buat set skala komputer virtual atau pilih set yang sudah ada. Mengaktifkan identitas terkelola yang ditetapkan sistem dari set skala mesin virtual:
az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
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 mesin virtual biasanya tidak memiliki alamat IP publik. Anda harus memiliki konektivitas dengan mereka dari mesin lain yang dapat menjangkau jaringan virtual Azure mereka. Contoh ini menunjukkan cara menggunakan IP privat dari mesin virtual di set skala mesin virtual untuk terhubung dari komputer di jaringan virtual yang sama:
az ssh vm --ip 10.11.123.456
Catatan
Anda tidak dapat secara otomatis menentukan alamat IP dari set skala mesin virtual dengan menggunakan sakelar --resource-group
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:
Hapus penginstalan ekstensi AADLoginForLinux pada mesin virtual:
az vm extension delete -g MyResourceGroup --vm-name MyVm -n AADLoginForLinux
Catatan
Penghapusan instalan ekstensi dapat gagal jika ada pengguna Microsoft Entra yang saat ini masuk di VM. Pastikan semua pengguna keluar terlebih dahulu.
Aktifkan identitas terkelola yang ditetapkan sistem pada mesin virtual Anda:
az vm identity assign -g myResourceGroup -n myVm
Pasang ekstensi AADSSHLoginForLinux pada mesin virtual:
az vm extension set \ --publisher Microsoft.Azure.ActiveDirectory \ --name AADSSHLoginForLinux \ --resource-group myResourceGroup \ --vm-name myVM
Gunakan Azure Policy untuk memenuhi standar dan menilai kepatuhan
Menggunakan Azure Policy untuk:
- Pastikan bahwa login Microsoft Entra diaktifkan untuk komputer virtual Linux baru dan yang sudah ada.
- Nilai 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 mesin virtual Linux yang memiliki akun lokal yang tidak disetujui yang dibuat di komputer mereka. Untuk mempelajari selengkapnya, tinjau Azure Policy.
Memecahkan masalah proses 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 permintaan SSH Anda, verifikasi bahwa Anda telah mengonfigurasi kebijakan Azure RBAC untuk mesin virtual yang memberi pengguna peran Masuk Administrator Mesin Virtual atau Masuk Pengguna Mesin Virtual. Jika Anda mengalami masalah dengan penetapan peran Azure, lihat artikel Memecahkan Masalah Azure RBAC.
Masalah saat menghapus ekstensi (AAADLoginForLinux) lama
Jika skrip penghapusan instalan gagal, ekstensi mungkin akan macet dalam status transisi. Ketika hal ini terjadi, ekstensi dapat meninggalkan paket yang seharusnya dicopot pemasangannya selama penghapusan. Dalam kasus seperti itu, sebaiknya hapus paket lama secara manual kemudian coba jalankan perintah az vm extension delete
.
Untuk menghapus instalan paket lama:
- Masuk sebagai pengguna lokal dengan hak istimewa admin.
- Pastikan tidak ada pengguna Microsoft Entra yang masuk. Panggil perintah
who -u
untuk melihat pengguna yang masuk. Kemudian gunakansudo kill <pid>
untuk semua proses sesi yang dilaporkan perintah sebelumnya. - Jalankan
sudo apt remove --purge aadlogin
(Ubuntu/Debian),sudo yum remove aadlogin
(RHEL), atausudo zypper remove aadlogin
(openSUSE atau SLES). - Jika perintah gagal, coba alat tingkat rendah dengan skrip dinonaktifkan:
- Untuk Ubuntu/Debian, jalankan
sudo dpkg --purge aadlogin
. Jika masih gagal karena skrip, hapus file/var/lib/dpkg/info/aadlogin.prerm
dan coba lagi. - Untuk yang lainnya, jalankan
rpm -e --noscripts aadogin
.
- Untuk Ubuntu/Debian, jalankan
- Ulangi langkah 3-4 untuk paket
aadlogin-selinux
.
Kesalahan penginstalan ekstensi
Penginstalan ekstensi mesin virtual 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 mesin virtual AADSSHLoginForLinux ditampilkan sebagai Transisi di portal.
Kegagalan ini terjadi karena identitas terkelola yang ditetapkan sistem diperlukan.
Solusinya adalah:
- Hapus instalan ekstensi yang gagal.
- Aktifkan identitas terkelola yang ditetapkan sistem pada mesin virtual Azure.
- Jalankan kembali perintah penginstalan ekstensi.
Kode keluar bukan nol 23
Jika Anda mendapatkan kode keluar 23, status ekstensi mesin virtual AADSSHLoginForLinux ditampilkan sebagai Transisi di portal.
Kegagalan ini terjadi saat ekstensi mesin virtual AADLoginForLinux yang lebih lama masih terpasang.
Solusinya adalah menghapus instalan ekstensi mesin virtual AADLoginForLinux yang lebih lama dari mesin virtual. Status ekstensi mesin virtual AADSSHLoginForLinux baru 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
Jika perintah az ssh vm
gagal, Anda menggunakan versi klien Azure CLI yang sudah kedaluwarsa.
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 mesin virtual 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 Mesin Virtual atau Masuk Pengguna Mesin Virtual dalam cakupan mesin virtual ini. Dalam hal ini, solusinya adalah menambahkan pengguna ke salah satu peran Azure RBAC tersebut dalam cakupan mesin virtual ini.
Kesalahan ini juga dapat terjadi jika pengguna berada dalam peran RBAC Azure yang diperlukan, tetapi identitas terkelola yang ditetapkan sistem telah dinonaktifkan pada mesin virtual. Dalam hal ini, lakukan tindakan ini:
- Aktifkan identitas terkelola yang ditetapkan sistem pada mesin virtual.
- Izinkan beberapa menit untuk berlalu sebelum pengguna mencoba menyambungkan dengan menggunakan
az ssh vm --ip <ip_address>
.
Masalah koneksi dengan set skala mesin virtual
Koneksi mesin virtual dengan set skala mesin 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 individu.
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 sudah memiliki masuk yang sukses, mereka dapat masuk.
Salah satu solusinya adalah menghapus AllowGroups
pernyataan dan DenyGroups
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:
- Menambahkan opsi
"PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
dalamaz 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