Microsoft Entra ID ve OpenSSH kullanarak Azure'da Linux sanal makinesinde oturum açın

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Azure'da Linux sanal makinelerinin (VM) güvenliğini geliştirmek için Microsoft Entra kimlik doğrulaması ile tümleştirebilirsiniz. Artık Microsoft Entra Id ve OpenSSH sertifika tabanlı kimlik doğrulamasını kullanarak Linux VM'de SSH için çekirdek kimlik doğrulama platformu ve sertifika yetkilisi olarak Microsoft Entra Id kullanabilirsiniz. Bu işlevsellik, kuruluşların Azure rol tabanlı erişim denetimi (RBAC) ve Koşullu Erişim ilkeleriyle VM'lere erişimi yönetmesine olanak tanır.

Bu makalede, OpenSSH sertifika tabanlı kimlik doğrulamasını kullanarak Linux VM oluşturma ve yapılandırma ve Microsoft Entra ID ile oturum açma işlemleri gösterilmektedir.

Azure'da Linux VM'lerinde oturum açmak için OpenSSH sertifika tabanlı kimlik doğrulaması ile Microsoft Entra ID kullanmanın birçok güvenlik avantajı vardır. Bu ölçümler şunlardır:

  • Azure Linux VM'lerinde oturum açmak için Microsoft Entra kimlik bilgilerinizi kullanın.
  • SSH anahtarlarını kullanıcılara dağıtmaya veya dağıttığınız Azure Linux VM'lerinde SSH ortak anahtarları sağlamaya gerek kalmadan SSH anahtar tabanlı kimlik doğrulaması alın. Bu deneyim, yetkisiz erişime neden olabilecek eski SSH ortak anahtarlarının yayılması konusunda endişelenmekten çok daha basittir.
  • Yerel yönetici hesaplarına, kimlik bilgisi hırsızlığına ve zayıf kimlik bilgilerine olan güveni azaltın.
  • Microsoft Entra ID için parola karmaşıklığı ve parola ömrü ilkelerini yapılandırarak Linux VM'lerinin güvenliğini sağlamaya yardımcı olun.
  • RBAC ile, bir VM'de kimlerin normal kullanıcı olarak veya yönetici ayrıcalıklarıyla oturum açabileceğini belirtin. Kullanıcılar ekibinize katıldığında, vm için Azure RBAC ilkesini uygun şekilde erişim vermek üzere güncelleştirebilirsiniz. Çalışanlar kuruluşunuzdan ayrıldığında ve kullanıcı hesapları Microsoft Entra Id'den devre dışı bırakıldığında veya kaldırıldığında, artık kaynaklarınıza erişemeyeceklerdir.
  • Koşullu Erişim ile, linux VM'lerinde SSH kullanabilmeniz için önce ilkeleri çok faktörlü kimlik doğrulaması gerektirecek veya istemci cihazınızın yönetilmesini (örneğin, uyumlu veya Microsoft Entra karmasına katılmış) gerektirecek şekilde yapılandırın.
  • Linux VM'leri için Microsoft Entra oturum açma bilgilerini zorunlu kılıp onaylanmamış yerel hesapları işaretlemek için Azure dağıtım ve denetim ilkelerini kullanın.

Microsoft Entra ID ile Linux VM'lerinde oturum açma, Active Directory Federasyon Hizmetleri (AD FS) kullanan müşteriler için çalışır.

Desteklenen Linux dağıtımları ve Azure bölgeleri

Desteklenen bir bölgedeki dağıtımlar için şu anda aşağıdaki Linux dağıtımları desteklenmektedir:

Dağıtım Sürüm
Common Base Linux Mariner (CBL-Mariner) CBL-Mariner 1, CBL-Mariner 2
CentOS CentOS 7, CentOS 8
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 - RHEL 7.9, RHEL 8.3+
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1+
Ubuntu Server Ubuntu Server 16.04 ile Ubuntu Server 22.04 arasındaki tüm ikincil sürümler Ubuntu 22.04'e

Şu anda bu özellik için aşağıdaki Azure bölgeleri desteklenmektedir:

  • Azure Global
  • Azure Kamu
  • 21Vianet tarafından çalıştırılan Microsoft Azure

Azure Kubernetes Service (AKS) kümelerinde Azure CLI için SSH uzantısının kullanılması desteklenmez. Daha fazla bilgi için bkz . AKS için destek ilkeleri.

Azure CLI'yı yerel olarak yükleyip kullanmayı seçerseniz sürüm 2.22.1 veya üzeri olmalıdır. Sürümü bulmak için az --version komutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme.

Not

Bu işlev, Azure Arc özellikli sunucular için de kullanılabilir.

OpenSSH sertifika tabanlı kimlik doğrulamasını kullanarak Microsoft Entra ID ile oturum açma gereksinimlerini karşılama

Azure'daki Linux VM'ler için SSH sertifika tabanlı kimlik doğrulaması aracılığıyla Microsoft Entra oturum açma özelliğini etkinleştirmek için aşağıdaki ağ, sanal makine ve istemci (SSH istemcisi) gereksinimlerini karşıladığınızdan emin olun.

VM ağ yapılandırması, TCP bağlantı noktası 443 üzerinden aşağıdaki uç noktalara giden erişime izin vermelidir.

Azure Global:

  • https://packages.microsoft.com: Paket yükleme ve yükseltmeleri için.
  • http://169.254.169.254: Azure Örneği Meta Veri Hizmeti uç noktası.
  • https://login.microsoftonline.com: PAM tabanlı (eklenebilir kimlik doğrulama modülleri) kimlik doğrulama akışları için.
  • https://pas.windows.net: Azure RBAC akışları için.

Azure Kamu:

  • https://packages.microsoft.com: Paket yükleme ve yükseltmeleri için.
  • http://169.254.169.254: Azure Örneği Meta Veri Hizmeti uç noktası.
  • https://login.microsoftonline.us: PAM tabanlı kimlik doğrulama akışları için.
  • https://pasff.usgovcloudapi.net: Azure RBAC akışları için.

21Vianet tarafından sağlanan Microsoft Azure:

  • https://packages.microsoft.com: Paket yükleme ve yükseltmeleri için.
  • http://169.254.169.254: Azure Örneği Meta Veri Hizmeti uç noktası.
  • https://login.chinacloudapi.cn: PAM tabanlı kimlik doğrulama akışları için.
  • https://pas.chinacloudapi.cn: Azure RBAC akışları için.

Sanal makine

VM'nizin aşağıdaki işlevlerle yapılandırıldığından emin olun:

  • Sistem tarafından atanan yönetilen kimlik. Vm oluşturmak için Azure portalını kullandığınızda ve Microsoft Entra oturum açma seçeneğini belirlediğinizde bu seçenek otomatik olarak seçilir. Azure CLI'yı kullanarak yeni veya mevcut bir VM'de sistem tarafından atanan yönetilen kimliği de etkinleştirebilirsiniz.
  • aadsshlogin ve aadsshlogin-selinux (uygun şekilde). Bu paketler AADSSHLoginForLinux VM uzantısıyla yüklenir. Uzantı, VM oluşturmak ve Microsoft Entra oturum açma özelliğini etkinleştirmek için Azure portalını veya Azure CLI'yı (Yönetim sekmesi) kullandığınızda yüklenir.

İstemci

İstemcinizin aşağıdaki gereksinimleri karşıladığından emin olun:

  • Kimlik doğrulaması için OpenSSH tabanlı sertifikalar için SSH istemci desteği. Bu gereksinimi karşılamak için OpenSSH (Windows 10 sürüm 1803 veya sonraki sürümlerde bulunur) ile Azure CLI (2.21.1 veya üzeri) veya Azure Cloud Shell kullanabilirsiniz.

  • Azure CLI için SSH uzantısı. Bu uzantıyı kullanarak az extension add --name sshyükleyebilirsiniz. Azure Cloud Shell kullanırken bu uzantıyı yüklemeniz gerekmez çünkü önceden yüklenmiş olarak gelir.

    OpenSSH sertifikalarını destekleyen Azure CLI veya Azure Cloud Shell dışında bir SSH istemcisi kullanıyorsanız kısa ömürlü SSH sertifikalarını ve isteğe bağlı olarak bir yapılandırma dosyasını almak için SSH uzantısıyla Azure CLI'yi kullanmanız gerekir. Daha sonra yapılandırma dosyasını SSH istemcinizle kullanabilirsiniz.

  • İstemciden VM'nin genel veya özel IP adresine TCP bağlantısı. (Bağlantıya sahip bir makineye ProxyCommand veya SSH iletme de çalışır.)

Önemli

PuTTY tabanlı SSH istemcileri artık OpenSSH sertifikalarını destekliyor ve Microsoft Entra OpenSSH sertifika tabanlı kimlik doğrulamasıyla oturum açmak için kullanılabilir.

Azure'da Linux VM için Microsoft Entra oturum açma özelliğini etkinleştirme

Azure'da bir Linux VM için Microsoft Entra oturum açma bilgilerini kullanmak için öncelikle Linux VM'niz için Microsoft Entra oturum açma seçeneğini etkinleştirmeniz gerekir. Ardından VM'de oturum açma yetkisi olan kullanıcılar için Azure rol atamalarını yapılandırabilirsiniz. Son olarak, Linux VM'nizde SSH için Azure CLI veya Azure Cloud Shell gibi OpenSSH'yi destekleyen SSH istemcisini kullanırsınız.

Linux VM'niz için Microsoft Entra oturum açma bilgilerini etkinleştirmenin iki yolu vardır:

  • Linux VM oluştururken Azure portalı deneyimi
  • Linux VM oluştururken veya mevcut vm'yi kullanırken Azure Cloud Shell deneyimi

Azure portal

Azure portalını kullanarak desteklenen Linux dağıtımlarından herhangi biri için Microsoft Entra oturum açma bilgilerini etkinleştirebilirsiniz.

Örneğin, Microsoft Entra oturum açma bilgileriyle Azure'da bir Ubuntu Server 18.04 uzun vadeli destek (LTS) VM oluşturmak için:

  1. VM oluşturma erişimi olan bir hesabı kullanarak Azure portalında oturum açın ve + Kaynak oluştur'u seçin.
  2. Popüler görünümde Ubuntu Server 18.04 LTS altında Oluştur'u seçin.
  3. Yönetim sekmesinde:
    1. Microsoft Entra Id ile oturum aç onay kutusunu seçin.
    2. Sistem tarafından atanan yönetilen kimlik onay kutusunun seçili olduğundan emin olun.
  4. Sanal makine oluşturma deneyiminin geri kalanını gözden geçir. Kullanıcı adı ve parola veya SSH ortak anahtarıyla bir yönetici hesabı oluşturmanız gerekir.

Azure Cloud Shell

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın kullanılan Azure araçları hesabınızla kullanmanız için Cloud Shell'de önceden yüklenir ve yapılandırılır. Kodu kopyalamak için Kopyala düğmesini seçmeniz, Cloud Shell'e yapıştırmanız ve ardından çalıştırmak için Enter tuşunu seçmeniz yeterlidir.

Cloud Shell’i açmanın birkaç yolu vardır:

  • Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.
  • Cloud Shell’i tarayıcınızda açın.
  • Azure portalının sağ üst köşesindeki menüde yer alan Cloud Shell düğmesini seçin.

Azure CLI'yı yerel olarak yükleyip kullanmayı seçerseniz, bu makalede 2.22.1 veya sonraki bir sürümü kullanmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme.

  1. az group create komutunu çalıştırarak bir kaynak grubu oluşturun.
  2. az vm create komutunu çalıştırarak vm oluşturun. Desteklenen bir bölgede desteklenen bir dağıtım kullanın.
  3. az vm extension set komutunu kullanarak Microsoft Entra oturum açma VM uzantısını yükleyin.

Aşağıdaki örnek bir VM dağıtır ve ardından Linux VM için Microsoft Entra oturum açma özelliğini etkinleştirmek üzere uzantıyı yükler. VM uzantıları, Azure Sanal Makineler dağıtım sonrası yapılandırma ve otomasyon görevleri sağlayan küçük uygulamalardır. Test gereksinimlerinizi desteklemek için örneği gerektiği gibi özelleştirin.

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

VM’yi ve destekleyici kaynakları oluşturmak birkaç dakika sürer.

AADSSHLoginForLinux uzantısı, Microsoft Entra kimlik doğrulamasını etkinleştirmek için çalışan bir VM aracısı ile mevcut (desteklenen dağıtım) Linux VM'sine yüklenebilir. Bu uzantıyı daha önce oluşturulmuş bir VM'ye dağıtıyorsanız, VM'de en az 1 GB bellek ayrılmış olmalıdır, aksi takdirde yükleme başarısız olur.

provisioningState uzantısı VM'ye Succeeded başarıyla yüklendiğinde değeri görüntülenir. Uzantıyı yüklemek için VM'nin çalışan bir VM aracısı olmalıdır.

VM için rol atamalarını yapılandırma

VM'yi oluşturduğunuza göre, vm'de kimlerin oturum açabileceğini belirlemek için aşağıdaki Azure rollerinden birini atamanız gerekir. Bu rolleri atamak için Sanal Makine Veri Erişimi Yönetici istrator rolüne veya Rol Tabanlı Erişim Denetimi Yönetici istrator rolü gibi eylemi içeren Microsoft.Authorization/roleAssignments/write herhangi bir role sahip olmanız gerekir. Ancak, Sanal Makine Veri Erişimi Yönetici istrator'dan farklı bir rol kullanıyorsanız rol atamaları oluşturma iznini azaltmak için bir koşul eklemenizi öneririz.

  • Sanal Makine Yönetici istrator Oturum Açma: Bu role atanmış kullanıcılar yönetici ayrıcalıklarıyla bir Azure sanal makinesinde oturum açabilir.
  • Sanal Makine Kullanıcı Oturumu Açma: Bu role atanmış kullanıcılar, normal kullanıcı ayrıcalıklarıyla bir Azure sanal makinesinde oturum açabilir.

Bir kullanıcının SSH üzerinden bir VM'de oturum açmasına izin vermek için VM'yi ve ilgili sanal ağı, ağ arabirimini, genel IP adresini veya yük dengeleyici kaynaklarını içeren kaynak grubunda Sanal Makine Yönetici Istrator Oturum Açma veya Sanal Makine Kullanıcısı Oturum Açma rolünü atamanız gerekir.

Vm için Sahip veya Katkıda Bulunan rolü atanmış bir Azure kullanıcısının SSH üzerinden VM'de Microsoft Entra oturum açma ayrıcalıkları otomatik olarak yoktur. Sanal makineleri denetleyen kişi kümesi ile sanal makinelere erişebilecek kişi kümesi arasında kasıtlı (ve denetlenmiş) bir ayrım vardır.

Vm için rol atamalarını yapılandırmanın iki yolu vardır:

  • Azure portal deneyimi
  • Azure Cloud Shell deneyimi

Not

Sanal Makine Yönetici istrator Oturum Açma ve Sanal Makine Kullanıcı Oturum Açma rolleri kullanılır dataActions ve yönetim grubunda, abonelikte, kaynak grubunda veya kaynak kapsamında atanabilir. Rolleri tek tek VM düzeyinde değil yönetim grubu, abonelik veya kaynak grubu düzeyinde atamanızı öneririz. Bu uygulama, abonelik başına Azure rol atamaları sınırına ulaşma riskini önler.

Azure portal

Microsoft Entra ID özellikli Linux VM'leriniz için rol atamalarını yapılandırmak için:

  1. Kaynak Grubu için VM'yi ve ilgili sanal ağı, ağ arabirimini, genel IP adresini veya yük dengeleyici kaynağını içeren kaynak grubunu seçin.

  2. Erişim denetimi (IAM) öğesini seçin.

  3. Rol ataması ekle sayfasını açmak için Rol ataması ekle'yi> seçin.

  4. Aşağıdaki rolü atayın. Ayrıntılı adımlar için bkz . Azure portalını kullanarak Azure rolleri atama.

    Ayar Value
    Role Sanal Makine Yönetici Istrator Oturum Açma veya Sanal Makine Kullanıcı Oturumu Açma
    Şu kişiye erişim ata: Kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik

    Rol ataması ekleme sayfasını gösteren ekran görüntüsü.

Birkaç dakika sonra güvenlik sorumlusuna seçilen kapsamda rol atanmış olur.

Azure Cloud Shell

Aşağıdaki örnek, geçerli Azure kullanıcınız için sanal makineye Sanal Makine Yönetici istrator Oturum Açma rolü atamak için az role assignment create komutunu kullanır. Az account show komutunu kullanarak geçerli Azure hesabınızın kullanıcı adını alırsınız ve az vm show kullanarak kapsamı önceki bir adımda oluşturulan VM olarak ayarlarsınız.

Kapsamı bir kaynak grubu veya abonelik düzeyinde de atayabilirsiniz. Normal Azure RBAC devralma izinleri geçerlidir.

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

Not

Microsoft Entra etki alanınız ve oturum açma kullanıcı adı etki alanınız eşleşmiyorsa, kullanıcı hesabınızın nesne kimliğini yalnızca kullanıcı adıyla --assigneedeğil kullanarak --assignee-object-idbelirtmeniz gerekir. Az ad user list komutunu kullanarak kullanıcı hesabınızın nesne kimliğini alabilirsiniz.

Azure abonelik kaynaklarınıza erişimi yönetmek için Azure RBAC'yi kullanma hakkında daha fazla bilgi için bkz . Azure rolü atama adımları.

Azure CLI için SSH uzantısını yükleme

Azure Cloud Shell kullanıyorsanız, hem Azure CLI'nin gerekli en düşük sürümü hem de Azure CLI için SSH uzantısı Cloud Shell ortamına zaten dahil olduğundan başka kurulum gerekmez.

Azure CLI için SSH uzantısını eklemek için aşağıdaki komutu çalıştırın:

az extension add --name ssh

Uzantı için gereken en düşük sürüm 0.1.4'dür. Aşağıdaki komutu kullanarak yüklü sürümü denetleyin:

az extension show --name ssh

Koşullu Erişim ilkelerini zorunlu kılma

Microsoft Entra oturum açma bilgileriyle etkinleştirilen Koşullu Erişim ilkelerini zorunlu kılabilir, örneğin:

  • Çok faktörlü kimlik doğrulaması gerektirme.
  • SSH istemcisini çalıştıran cihaz için uyumlu veya Microsoft Entra karma katılmış bir cihaz gerektirme.
  • Azure'da Linux VM'lerine erişim yetkisi vermeden önce riskleri denetleme.

Koşullu Erişim ilkesinde görüntülenen uygulamaya Azure Linux VM Oturum Açma adı verilir.

Not

SSH istemcisini çalıştıran cihazda cihaz uyumluluğu veya Microsoft Entra karma katılımı gerektiren Koşullu Erişim ilkesi zorlaması yalnızca Windows ve macOS üzerinde çalışan Azure CLI ile çalışır. Linux veya Azure Cloud Shell üzerinde Azure CLI kullanırken desteklenmez.

Eksik uygulama

Koşullu Erişim'de Azure Linux VM Oturum Açma uygulaması eksikse, uygulamanın kiracıda olmadığından emin olun:

  1. Microsoft Entra yönetim merkezinde en az Bulut Uygulaması Yönetici istrator olarak oturum açın.
  2. Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.
  3. Tüm uygulamaları görmek için filtreleri kaldırın ve Sanal Makine'yi arayın. Sonuç olarak Microsoft Azure Linux Sanal Makine Oturum Açma'yı görmüyorsanız hizmet sorumlusu kiracıda eksiktir.

Linux VM'de SSH'ye Microsoft Entra kullanıcı hesabı kullanarak oturum açın

Azure CLI kullanarak oturum açma

az login girin. Bu komut, Microsoft Entra hesabınızı kullanarak oturum açabileceğiniz bir tarayıcı penceresi açar.

az login 

Sonra az ssh vm komutunu girin. Aşağıdaki örnek, VM için uygun IP adresini otomatik olarak çözümler.

az ssh vm -n myVM -g AzureADLinuxVM

İstenirse oturum açma sayfasına Microsoft Entra oturum açma kimlik bilgilerinizi girin, çok faktörlü kimlik doğrulaması gerçekleştirin ve/veya cihaz denetimlerini gerçekleştirin. Sizden yalnızca Azure CLI oturumunun gerekli Koşullu Erişim ölçütlerini karşılamaması durumunda istenir. Tarayıcı penceresini kapatın, SSH istemine dönün; vm'ye otomatik olarak bağlanırsınız.

Artık VM Kullanıcısı veya VM Yönetici istrator gibi atanmış rol izinleriyle Linux sanal makinesinde oturum açtınız. Kullanıcı hesabınıza Sanal Makine Yönetici istrator Oturum Açma rolü atanmışsa, kök ayrıcalıkları gerektiren komutları çalıştırmak için sudo kullanabilirsiniz.

Azure Cloud Shell kullanarak oturum açma

İstemci makinenize yerel olarak herhangi bir şey yüklemenize gerek kalmadan VM'lere bağlanmak için Azure Cloud Shell'i kullanabilirsiniz. Azure portalının sağ üst köşesindeki kabuk simgesini seçerek Cloud Shell'i başlatın.

Cloud Shell, oturum açmış kullanıcı bağlamında bir oturuma otomatik olarak bağlanır. Şimdi yeniden çalıştırın az login ve etkileşimli oturum açma akışından geçin:

az login

Ardından vm'nin adını ve kaynak grubunu veya IP adresini kullanarak bağlanmak için normal az ssh vm komutları kullanabilirsiniz:

az ssh vm -n myVM -g AzureADLinuxVM

Not

Azure Cloud Shell kullanırken cihaz uyumluluğu veya Microsoft Entra karma katılımı gerektiren Koşullu Erişim ilkesi zorlaması desteklenmez.

Linux VM'de SSH için Microsoft Entra hizmet sorumlusunu kullanarak oturum açın

Azure CLI, kullanıcı hesabı yerine hizmet sorumlusuyla kimlik doğrulamayı destekler. Hizmet sorumluları belirli bir kullanıcıya bağlı olmadığından, müşteriler sahip olabilecekleri otomasyon senaryolarını desteklemek için bunları kullanarak vm'de SSH kullanabilir. Hizmet sorumlusuna VM Yönetici istrator veya VM Kullanıcı hakları atanmış olmalıdır. Abonelik veya kaynak grubu düzeyinde izinler atayın.

Aşağıdaki örnek, kaynak grubu düzeyinde hizmet sorumlusuna VM Yönetici istrator hakları atar. Hizmet sorumlusu nesne kimliği, abonelik kimliği ve kaynak grubu adı için yer tutucuları değiştirin.

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>"

Hizmet sorumlusunu kullanarak Azure CLI'da kimlik doğrulaması yapmak için aşağıdaki örneği kullanın. Daha fazla bilgi için Azure CLI'da hizmet sorumlusuyla oturum açma makalesine bakın.

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

Hizmet sorumlusuyla kimlik doğrulaması tamamlandığında, VM'ye bağlanmak için normal Azure CLI SSH komutlarını kullanın:

az ssh vm -n myVM -g AzureADLinuxVM

OpenSSH'yi destekleyen SSH istemcileriyle kullanmak üzere SSH yapılandırmasını dışarı aktarma

Microsoft Entra ID ile Azure Linux VM'lerinde oturum açma, OpenSSH sertifikasını ve yapılandırmasını dışarı aktarmayı destekler. Bu, Microsoft Entra Kimliği aracılığıyla oturum açmak için OpenSSH tabanlı sertifikaları destekleyen tüm SSH istemcilerini kullanabileceğiniz anlamına gelir. Aşağıdaki örnek, VM'ye atanan tüm IP adresleri için yapılandırmayı dışarı aktarır:

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

Alternatif olarak, yalnızca IP adresini belirterek yapılandırmayı dışarı aktarabilirsiniz. Aşağıdaki örnekteki IP adresini VM'nizin genel veya özel IP adresiyle değiştirin. (Özel IP'ler için kendi bağlantınızı getirmelisiniz.) Bu komutla ilgili yardım için girin az ssh config -h .

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

Ardından normal OpenSSH kullanımı aracılığıyla VM'ye bağlanabilirsiniz. Bağlan, OpenSSH kullanan herhangi bir SSH istemcisi aracılığıyla yapılabilir.

Microsoft Entra oturum açma bilgileriyle sudo çalıştırma

Vm Yönetici istrator rolüne başarılı bir şekilde SSH atandıktan sonra, başka bir etkileşim veya kimlik doğrulama gereksinimi olmadan sudo çalıştırabilecekler. VM Kullanıcı rolüne atanan kullanıcılar sudo çalıştıramaz.

Sanal makine ölçek kümelerindeki VM'lere Bağlan

Sanal makine ölçek kümeleri desteklenir, ancak bir sanal makine ölçek kümesindeki VM'leri etkinleştirme ve vm'lere bağlanma adımları biraz farklıdır:

  1. Bir sanal makine ölçek kümesi oluşturun veya zaten var olan bir ölçek kümesi seçin. Sanal makine ölçek kümeniz için sistem tarafından atanan yönetilen kimliği etkinleştirin:

    az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
    
  2. Sanal makine ölçek kümenize Microsoft Entra uzantısını yükleyin:

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

Sanal makine ölçek kümelerinde genellikle genel IP adresleri yoktur. Azure sanal ağına ulaşabilen başka bir makineden bağlantınız olmalıdır. Bu örnekte, aynı sanal ağdaki bir makineden bağlanmak için sanal makine ölçek kümesindeki bir VM'nin özel IP'sinin nasıl kullanılacağı gösterilmektedir:

az ssh vm --ip 10.11.123.456

Not

ve --name anahtarlarını kullanarak --resource-group sanal makine ölçek kümesi VM'sinin IP adreslerini otomatik olarak belirleyemezsiniz.

Önceki (önizleme) sürümden geçiş

Linux için cihaz kodu akışını temel alan önceki Microsoft Entra oturum açma sürümünü kullanıyorsanız Azure CLI kullanarak aşağıdaki adımları tamamlayın:

  1. VM'de AADLoginForLinux uzantısını kaldırın:

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

    Not

    Şu anda VM'de oturum açmış microsoft Entra kullanıcısı varsa uzantının kaldırılması başarısız olabilir. Önce tüm kullanıcıların oturumlarının kapatıldığından emin olun.

  2. Vm'nizde sistem tarafından atanan yönetilen kimliği etkinleştirin:

    az vm identity assign -g myResourceGroup -n myVm
    
  3. VM'ye AADSSHLoginForLinux uzantısını yükleyin:

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

Standartları karşılamak ve uyumluluğu değerlendirmek için Azure İlkesi kullanma

Aşağıdakileri yapmak için Azure İlkesi’ni kullanabilirsiniz:

  • Yeni ve mevcut Linux sanal makineleriniz için Microsoft Entra oturum açma özelliğinin etkinleştirildiğinden emin olun.
  • Uyumluluk panosunda ortamınızın uygun ölçekte uyumluluğunu değerlendirin.

Bu özellik sayesinde birçok zorlama düzeyi kullanabilirsiniz. Ortamınızda Microsoft Entra oturum açma özelliğinin etkinleştirilmemiş olduğu yeni ve mevcut Linux VM'lerine bayrak ekleyebilirsiniz. Azure İlkesi kullanarak Microsoft Entra uzantısını Microsoft Entra oturum açma özelliği etkin olmayan yeni Linux VM'lerine dağıtabilir ve mevcut Linux VM'lerini aynı standarda düzeltebilirsiniz.

Bu özelliklere ek olarak, makinelerinde onaylanmamış yerel hesapları oluşturulan Linux VM'lerini algılamak ve bayrak eklemek için Azure İlkesi kullanabilirsiniz. Daha fazla bilgi edinmek için Azure İlkesi gözden geçirin.

Oturum açma sorunlarını giderme

Microsoft Entra kimlik bilgileriyle SSH'yi denediğinizde olabilecek yaygın hataları düzeltmek için aşağıdaki bölümleri kullanın.

Yerel önbellekten belirteç alınamadı

Belirtecin yerel önbellekten alınamadığını belirten bir ileti alırsanız, yeniden çalıştırmanız az login ve etkileşimli bir oturum açma akışından geçmeniz gerekir. Azure Cloud Shell kullanarak oturum açma hakkındaki bölümü gözden geçirin.

Erişim reddedildi: Azure rolü atanmadı

SSH isteminizde "Azure rolü atanmadı" hatası görürseniz, kullanıcıya Sanal Makine Yönetici istrator Oturum Açma rolü veya Sanal Makine Kullanıcı Oturumu Açma rolü veren VM için Azure RBAC ilkeleri yapılandırdığınızdan emin olun. Azure rol atamalarıyla ilgili sorun yaşıyorsanız Azure RBAC sorunlarını giderme makalesine bakın.

Eski (AADLoginForLinux) uzantısını silme sorunları

Kaldırma betikleri başarısız olursa uzantı geçiş durumunda takılmış olabilir. Bu durumda uzantı, kaldırılması sırasında kaldırması gereken paketleri bırakabilir. Böyle durumlarda, eski paketleri el ile kaldırıp komutunu çalıştırmayı az vm extension delete denemek daha iyidir.

Eski paketleri kaldırmak için:

  1. Yönetici ayrıcalıklarıyla yerel kullanıcı olarak oturum açın.
  2. Oturum açmış Microsoft Entra kullanıcısı olmadığından emin olun. Kimin oturum açtığını who -u görmek için komutunu çağırın. Ardından önceki komutun bildirdiği tüm oturum işlemleri için kullanın sudo kill <pid> .
  3. (Ubuntu/Debian), sudo yum remove aadlogin (RHEL veya CentOS) veya sudo zypper remove aadlogin (openSUSE veya SLES) çalıştırın sudo apt remove --purge aadlogin .
  4. Komut başarısız olursa, betikler devre dışı bırakılmış alt düzey araçları deneyin:
    1. Ubuntu/Debian için komutunu çalıştırın sudo dpkg --purge aadlogin. Betik nedeniyle başarısız olmaya devam ediyorsa, dosyayı silin /var/lib/dpkg/info/aadlogin.prerm ve yeniden deneyin.
    2. Diğer her şey için komutunu çalıştırın rpm -e --noscripts aadogin.
  5. paketi aadlogin-selinuxiçin 3-4 arası adımları yineleyin.

Uzantı yükleme hataları

AADSSHLoginForLinux VM uzantısının mevcut bilgisayarlara yüklenmesi aşağıdaki bilinen hata kodlarından biriyle başarısız olabilir.

Sıfır olmayan çıkış kodu 22

Çıkış kodu 22'yi alırsanız, AADSSHLoginForLinux VM uzantısının durumu portalda Geçiş olarak gösterilir.

Sistem tarafından atanan yönetilen kimlik gerektiğinden bu hata ortaya çıkar.

Çözüm şu şekildedir:

  1. Başarısız olan uzantıyı kaldırın.
  2. Azure VM'de sistem tarafından atanan yönetilen kimliği etkinleştirin.
  3. Uzantı yükleme komutunu yeniden çalıştırın.

Sıfır olmayan çıkış kodu 23

Çıkış kodu 23'i alırsanız, AADSSHLoginForLinux VM uzantısının durumu portalda Geçiş olarak gösterilir.

Bu hata, eski AADLoginForLinux VM uzantısı hala yüklü olduğunda gerçekleşir.

Çözüm, vm'den eski AADLoginForLinux VM uzantısını kaldırmaktır. Ardından yeni AADSSHLoginForLinux VM uzantısının durumu portalda Sağlama başarılı olarak değişir.

HTTP ara sunucusu kullanılırken yükleme hataları

Uzantının paketleri yüklemek ve sistem kimliğinin varlığını denetlemek için bir HTTP bağlantısına ihtiyacı vardır. bağlamında walinuxagent.service çalışır ve aracıya ara sunucu ayarları hakkında bilgi vermek için bir değişiklik gerektirir. Hedef makinede dosyayı açın /lib/systemd/system/walinuxagent.service ve sonra [Service]aşağıdaki satırı ekleyin:

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

Aracıyı (sudo systemctl restart walinuxagent) yeniden başlatın. Şimdi yeniden deneyin.

az ssh vm komutu KeyError access_token ile başarısız oluyor

az ssh vm Komut başarısız olursa Azure CLI istemcisinin eski bir sürümünü kullanıyorsunuz demektir.

Çözüm, Azure CLI istemcisini 2.21.0 veya sonraki bir sürüme yükseltmektir.

SSH bağlantısı kapatıldı

Kullanıcı kullanarak az loginbaşarıyla oturum açtığında veya az ssh vm --name <vm_name> -g <resource_group> aracılığıyla VM az ssh vm -ip <address> bağlantısı "Bağlan ion ip_address> bağlantı noktası 22 tarafından <kapatıldı" hatasıyla başarısız olabilir.

Bu hatanın bir nedeni, kullanıcının bu VM kapsamında Sanal Makine Yönetici Istrator Oturum Açma veya Sanal Makine Kullanıcısı Oturum Açma rolüne atanmamış olmasıdır. Bu durumda çözüm, kullanıcıyı bu VM kapsamında bu Azure RBAC rollerinden birine eklemektir.

Kullanıcı gerekli bir Azure RBAC rolündeyse ancak sistem tarafından atanan yönetilen kimlik VM'de devre dışı bırakıldıysa da bu hata oluşabilir. Bu durumda şu eylemleri gerçekleştirin:

  1. VM'de sistem tarafından atanan yönetilen kimliği etkinleştirin.
  2. Kullanıcı kullanarak az ssh vm --ip <ip_address>bağlanmayı denemeden önce birkaç dakika geçmesine izin verin.

Sanal makine ölçek kümeleriyle ilgili Bağlan sorunları

Ölçek kümesi örnekleri eski bir model çalıştırıyorsa sanal makine ölçek kümelerine sahip VM bağlantıları başarısız olabilir.

Ölçek kümesi örneklerinin en son modele yükseltilmesi, özellikle De Microsoft Entra Login uzantısı yüklendikten sonra yükseltme yapılmadıysa sorunu çözebilir. Bir örneği yükseltmek, tek tek örneğe standart bir ölçek kümesi yapılandırması uygular.

sshd_config'daki AllowGroups veya DenyGroups deyimleri, Microsoft Entra kullanıcılarının ilk oturum açma işleminin başarısız olmasına neden oluyor

sshd_config veya DenyGroups deyimleri içeriyorsaAllowGroups, Microsoft Entra kullanıcıları için ilk oturum açma işlemi başarısız olur. Kullanıcılar zaten başarılı bir oturum açtıktan sonra deyimi eklendiyse, oturum açabilirler.

Çözümlerden biri, ve deyimlerini sshd_config kaldırmaktır.AllowGroupsDenyGroups

Bir diğer çözüm de sshd_config'daki bir bölüme gitmektir AllowGroupsDenyGroups.match user Eşleştirme şablonunun Microsoft Entra kullanıcılarını dışladığından emin olun.

Azure Shell'den Linux Red Hat/Oracle/CentOS 7.X VM'ye bağlanmaya çalışırken İzin Reddedildi alınıyor.

Hedef VM 7.4'teki OpenSSH sunucusu sürümü çok eski. Sürüm OpenSSH istemci sürümü 8.8 ile uyumsuz. Daha fazla bilgi için RSA SHA256 sertifikaları artık çalışmıyor konusuna bakın.

Geçici çözüm:

  • Komutunda az ssh vm seçenek "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" ekleniyor.
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
  • seçeneğine "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"/home/<user>/.ssh/config fileekleme.

öğesini "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com" istemci yapılandırma dosyasına ekleyin.

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

Sonraki adımlar