Nelze připojit virtuální počítač se systémem Linux pomocí připojení SSH
07/21/20203 minuty ke čteníTento článek poskytuje řešení problému, kdy SSH selže, protože soubor /var/empty/sshd není vlastněn kořenovým adresářem a není skupinově nebo světově zapisovatelný.
Původní verze produktu: Virtuální počítač se systémem LinuxPůvodní číslo KB: 4092816
Nelze připojit virtuální počítač se systémem Linux pomocí připojení SSH
Nelze připojit virtuální počítač Linux (VM) pomocí zabezpečeného připojení shell (SSH). Když nastane tento problém, může se v závislosti na vaší distribuci Linuxu zobrazit následující chybová zpráva o souboru /var/empty/sshd.
SuSE
/var/empty musí být vlastněn uživatelem root a ne group nebo world-writable.startproc: výstupní stav nadřazeného adresáře /usr/sbin/sshd: 255Failed
CentOS
Spouštění sshd: /var/empty/sshd musí být vlastněno uživatelem root a nesmí být zapisovatelný do skupiny nebo do světa.[FAILED]
Tento problém může nastat, pokud soubor /var/empty/sshd není vlastněn kořenovým adresářem a nelze do něj zapisovat skupinově ani do celého světa.
Chcete-li změnit oprávnění k souboru Linux, pokud nemáte přístup SSH, použijte jednu z následujících metod:
Azure Portal: Spusťte na virtuálním počítači vlastní skript pro Linux, který vydává příkazy Linux chmod pro soubor, který musíte změnit. Ruční příloha: Odstraňte virtuální počítač, ponechte si disky, připojte systémový disk k jinému dočasnému virtuálnímu počítači a poté aktualizujte soubory na dočasném virtuálním počítači. Poté znovu vytvořte virtuální počítač ze systémového disku.CLI: Použijte rozhraní příkazového řádku ke spouštění příkazů BASH na virtuálním počítači.Tato metoda závisí na agentovi Azure Linux (WAgent ).
Otevřete okno Vlastnosti virtuálního počítače na Azure Portal a zkontrolujte stav agenta. Pokud je agent povolen, změňte oprávnění podle následujících kroků:
Zkopírujte následující skript do místního počítače a poté přejmenujte soubor na update_perms.sh.
Poznámka
Musíte aktualizovat skript, aby odrážel vaši systémovou distribuci. Tento skript běží pouze na variantách Red Hat.
Přejděte na Azure Portal, vyhledejte nastavení virtuálního počítače a poté vyberte Rozšíření> Přidat > Vlastní skript pro Linux > Vytvořit.
V souborech skriptů nahrajte soubor update_perms.sh a poté klikněte na OK.
Po odeslání skriptu do virtuálního počítače by hodnota STATUS měla být Úspěch.
Ukázkový skript update_perms.sh změní oprávnění k souboru /var/empty/sshd ze 777 na 755 a nastaví vlastníka a skupinu na root:root. Počkejte na spuštění skriptu. To může trvat několik minut. Linuxový agent přijme požadavek a poté předá správnému rozšíření. Pokud se můžete připojit k virtuálnímu počítači pomocí připojení SSH a chcete vidět, co se stalo během běhu skriptu update_params.sh, prohlédněte si soubor extension.log soubor v adresáři /var/log/azure/Microsoft.OSTCExtensions.CustomScriptForLinux/.
Postupujte takto:
Odstraňte virtuální počítač, ponechte si disky, připojte systémový disk k jinému dočasnému virtuálnímu počítači a poté aktualizujte soubory (oprávnění a vlastnictví) na dočasném virtuálním počítači. Znovu vytvořte virtuální počítač z disku.Další informace naleznete v tématu CLI: Jak odstranit a znovu nasadit virtuální počítač z VHD (nespravovaný disk).
K vkládání příkazů do virtuálního počítače použijte rozhraní příkazového řádku (CLI). Existují dvě verze CLI. Další informace najdete v tématu použití rozšíření Azure Custom Script Extension s virtuálními počítači Linux.
Následující příklad používá novější CLI verze 2. Resetuje oprávnění a vlastnictví souboru /var/empty/sshd pomocí rozšíření customScript prostřednictvím rozhraní CLI. Služba sshd se také restartuje.
V tomto skriptu nahraďte skutečným názvem virtuálního počítače a skutečným názvem skupiny prostředků.
vmname=yourvm;rg=yourrg;timestamp=`date +%d%Y%H%M%S`;az sada rozšíření vm –skupina zdrojů $rg –vm-name $vmname –name customScript –publisher Microsoft.Azure. Rozšíření – nastavení "{'commandToExecute': 'bash -c \'chmod 755 /var/empty/sshd;chown root:root /var/empty/sshd;systemctl start sshd;ps -eaf | grep sshd\",'timestamp ': "$((timestamp))"}"Tato funkce vám umožňuje přistupovat k virtuálnímu počítači prostřednictvím konzole jako fyzickému serveru. Toto schéma vám umožňuje upravovat soubory bez použití vlastního skript a bez nutnosti mazat VM.
PREV: Nejlepší proxy server pro PS4 2021 | Jak používat proxy server na PS4
NEXT: Konfigurace PS4 Proxy Server | Nejlepší PS4 Proxy Server 2021