Aracılığıyla paylaş


İzin ve sahiplik sorunları nedeniyle Azure Linux VM'de SSH bağlantı sorunlarını giderme

Not

Bu makalede başvuruda bulunan CentOS bir Linux dağıtımıdır ve Kullanım Ömrünün Sonuna (EOL) ulaşacaktır. Kullanımınızı göz önünde bulundurun ve buna göre planlayın. Daha fazla bilgi için bkz. CentOS Kullanım Süresi Sonu kılavuzu.

Bu makalede, RHEL'deki /var/empty/sshd dizini, SUSE'deki /var/lib/empty dizini veya Ubuntu'daki /var/run/sshd dizininin mevcut olmaması veya kök kullanıcıya ait olmaması ya da grup yazılabilir veya dünya yazılabilir olması nedeniyle Bir Linux sanal makinesine (VM) bağlanmanın başarısız olması sorununa çözüm sağlanır.

Belirtiler

SSH aracılığıyla bir Linux sanal makinesine (VM) bağlandığınızda bağlantı başarısız olur. Linux dağıtımınıza bağlı olarak etkilenen dizin hakkında aşağıdaki hata iletisini alabilirsiniz.

sudo tail /var/log/messages
sshd: /var/empty/sshd must be owned by root and not group or world-writable.  

Neden

Etkilenen dizin kök kullanıcıya ait değilse veya grup yazılabilir veya dünya yazılabilirse bu sorun oluşabilir.

Bu sorunu çözmek için aşağıdaki çözümlerden birini kullanın:

Çözüm 1: VM'yi çevrimiçi onarma

VM'yi çevrimdışı onarmak için iki yöntem şunlardır:

Seri Konsol kullanma

  1. Azure portal'dan VM'nin Seri Konsolu'na bağlanın.

  2. Yerel bir yönetim hesabı ve ilgili kimlik bilgilerini veya parolasını kullanarak VM'de oturum açın.

  3. İzin ve sahiplik sorununu çözmek için aşağıdaki komutları çalıştırın:

    sudo mkdir -p /var/empty/sshd
    sudo chmod 755 /var/empty/sshd
    sudo chown root:root /var/empty/sshd
    

"Komut Çalıştır" uzantısını kullanma

Not

Bu yöntem, Azure Linux VM Aracısı'nı (waagent) kullanır. Bu nedenle, aracının VM'ye yüklendiğinden ve hizmetinin çalıştığından emin olun.

Azure portal aracı durumunu denetlemek için VM'nin Özellikler penceresini açın. Aracı etkinse ve Hazır durumuna sahipse, izni değiştirmek için şu adımları izleyin:

  1. Azure portal gidin, VM ayarlarınızı bulun ve ardından İşlemler'in altında Komutu Çalıştır'ı seçin.

  2. RunShellScript> Çalıştır'ı seçerek aşağıdaki kabuk betiğiniyürütür:

    #!/bin/bash
    
    #Script to change permissions on a file
    mkdir -p /var/empty/sshd;chmod 755 /var/empty/sshd;chown root:root /var/empty/sshd
    

  1. Betik yürütmesi tamamlandıktan sonra çıkış konsolu penceresinde "Başarılı etkinleştir" iletisi gösterilir.

SSH aracılığıyla VM'ye bağlanabiliyorsanız ve Komut çalıştırma betiği yürütmenin ayrıntılarını analiz etmek istiyorsanız ,/var/log/azure/run-command dizinindeki handler.log dosyasını inceleyin.

Çözüm 2: VM'yi çevrimdışı onarma

Not

  • VM seri konsolu erişimi kullanılamıyorsa ve waagent hazır değilse bu çözünürlüğü kullanın.
  • Ubuntu'da /var/run/sshd dizini bellekte çalışır. VM'nin yeniden başlatılması sorunu da çözer. Bu nedenle, Ubuntu VM'lerinde çevrimdışı sorun giderme gerekli değildir.

VM'yi çevrimdışı onarmak için iki yöntem şunlardır:

Azure Linux Otomatik Onarım'ı (ALAR) kullanma

Azure Linux Otomatik Onarım (ALAR) betikleri, Azure Sanal Makine onarım komutlarını kullanarak Linux VM'yi onarma başlığı altında açıklanan VM onarım uzantısının bir parçasıdır.

El ile çevrimdışı işlemi otomatikleştirmek için şu adımları izleyin:

Not

Aşağıdaki adımlarda , $VMNAME, , $USERNAME$PASSWORDve repairdiskcopy değerlerini uygun şekilde değiştirin$RGNAME.

  1. Onarım VM'sini oluşturmak için az vm repair create komutunu kullanın. Onarım VM'sinde sorunlu VM için işletim sistemi diskinin bir kopyası eklenmiştir.

    az vm repair create --verbose -g $RGNAME -n $VMNAME --repair-username $USERNAME --repair-password $PASSWORD --copy-disk-name repairdiskcopy
    
  2. Onarım VM'sinde oturum açın. İşletim sistemi diskinin ekli kopyasının dosya sistemine bağlayın ve chroot kullanın. Ayrıntılı chroot yönergelerini izleyin.

  3. İzin ve sahiplik sorunlarını çözmek için aşağıdaki komutları çalıştırın:

    mkdir -p /var/empty/sshd
    chmod 755 /var/empty/sshd
    chown root:root /var/empty/sshd
    
  4. Değişiklikler uygulandıktan sonra, özgün VM ile otomatik işletim sistemi diski değişimi gerçekleştirmek için aşağıdaki az vm repair restore komutu çalıştırın.

    az vm repair restore --verbose -g $RGNAME -n $VMNAME
    

El ile yöntemini kullanma

Hem seri konsol hem de ALAR yaklaşımı sizin için geçerli değilse veya başarısız olursa onarımın el ile gerçekleştirilmesi gerekir. İşletim sistemi diskini bir kurtarma VM'sine el ile eklemek ve işletim sistemi diskini özgün VM'ye geri değiştirmek için aşağıdaki adımları izleyin:

İşletim sistemi diski kurtarma VM'sine başarıyla eklendikten sonra, ekli işletim sistemi diskinin dosya sistemlerine bağlanmak ve chroot uygulamak için ayrıntılı chroot yönergelerini izleyin. Ardından, izin ve sahiplik sorunlarını çözmek için Azure Linux Otomatik Onarımı (ALAR) kullanma bölümündeki 3. adımı izleyin.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.