Не може да се свърже Linux VM чрез SSH връзка
21.07.20203 минути за четенеТази статия предоставя решение на проблем, при който SSH се проваля, защото файлът /var/empty/sshd не е собственост на основната директория и не е групово или световно записваемо.
Оригинална версия на продукта: Виртуална машина, работеща с Linux. Оригинален KB номер: 4092816
Не може да се свърже Linux VM чрез SSH връзка
Не можете да свържете виртуална машина (VM) на Linux чрез връзка със защитена обвивка (SSH). Когато възникне този проблем, може да получите следното съобщение за грешка за файла /var/empty/sshd, в зависимост от вашата Linux дистрибуция.
SuSE
/var/empty трябва да бъде собственост на root, а не на група или world-writable.startproc: състояние на изход на родител на /usr/sbin/sshd: 255Failed
CentOS
Стартиране на sshd: /var/empty/sshd трябва да се притежава от root и да не може да се записва от група или от света.[FAILED]
Този проблем може да възникне, ако файлът /var/empty/sshd не е собственост на основната директория и не може да се записва от група или от света.
За да промените разрешенията за Linux файл, ако нямате SSH достъп, използвайте един от следните методи:
Портал на Azure: Изпълнете персонализиран скрипт на Linux на виртуалната машина, който издава командите на Linux chmod във файла, който трябва да промените. Ръчно прикачване: Изтрийте виртуалната машина, запазете дисковете, монтирайте системния диск към друга временна виртуална машина и след това актуализирайте файлове на временната виртуална машина. След това създайте отново виртуалната машина от системния диск. CLI: Използвайте интерфейса на командния ред, за да изпълните BASH команди на виртуалната машина.Този метод разчита на агента на Azure Linux (WAgent ).
Отворете прозореца със свойства на виртуалната машина в портала на Azure, за да проверите състоянието на агента. Ако агентът е активиран, изпълнете следните стъпки, за да промените разрешението:
Копирайте следния скрипт на вашия локален компютър и след това преименувайте файла на update_perms.sh.
Забележка
Трябва да актуализирате скрипта, за да отразява разпространението на вашата система. Този скрипт работи само с варианти на Red Hat.
Отидете до портала на Azure, намерете вашите VM настройки и след това изберете Разширения> Добавяне > Персонализиран скрипт за Linux > Създавайте.
В скриптовите файлове качете файла update_perms.sh и след това щракнете върху OK.
След като скриптът бъде изпратен към виртуалната машина, стойността на STATUS трябва да бъде Успешно.
Примерният скрипт update_perms.sh променя разрешенията за файла /var/empty/sshd от 777 на 755 и задава собственика и групата на root:root. Изчакайте скриптът да се изпълни. Това може да отнеме няколко минути. Linux Agent получава заявката и след това я предава на правилното разширение. Ако можете да се свържете с виртуалната машина чрез SSH връзка и искате да видите какво се е случило, докато скриптът update_params.sh се изпълнява, прегледайте extension.log файл в директорията /var/log/azure/Microsoft.OSTCExtensions.CustomScriptForLinux/.
Следвайте тези стъпки:
Изтрийте VM, запазете дисковете, монтирайте системния диск към друга временна VM и след това актуализирайте файловете (разрешения и собственост) на временната VM. Създайте отново VM от диск.За повече информация вижте CLI: Как да изтриете и преразположите VM от VHD (неуправляван диск).
Използвайте интерфейса на командния ред (CLI), за да инжектирате команди във VM. Има две версии на CLI. За повече информация вижте Използване на разширението за потребителски скрипт на Azure с виртуални машини на Linux.
Следният пример използва по-новата CLI версия 2. Той нулира разрешенията и собствеността на файла /var/empty/sshd чрез използване на разширението customScript чрез CLI. Услугата sshd също се рестартира.
В този скрипт заменете с действителното име на VM и с действителното име на групата ресурси.
vmname=yourvm;rg=yourrg;timestamp=`date +%d%Y%H%M%S`;az vm extension set –resource-group $rg –vm-name $vmname –name customScript –publisher Microsoft.Azure. Разширения – настройки "{'commandToExecute': 'bash -c \'chmod 755 /var/empty/sshd;chown root:root /var/empty/sshd;systemctl start sshd;ps -eaf | grep sshd\",'timestamp ': "$((timestamp))"}"Тази функция ви позволява да осъществявате достъп до VM чрез конзола като физически сървър. Тази схема ви позволява да променяте файлове, без да използвате персонализиран скрипт и без да се налага да изтривате VM.
PREV: Най-добрият прокси сървър за PS4 2021 | Как да използвате прокси сървър на PS4
NEXT: Конфигуриране на PS4 прокси сървър | Най-добрият PS4 прокси сървър за 2021 г