Поделиться через


Использование расширения VMAccess для сброса пароля или ключа SSH, исправления конфигурации SSH и проверки согласованности диска виртуальной машины Linux

Важно!

1 марта 2023 г. мы прекратим поддержку классических виртуальных машин.

Если вы используете ресурсы IaaS из ASM, выполните миграцию до 1 марта 2023 г. Рекомендуем осуществить этот переход как можно раньше, чтобы воспользоваться различными улучшенными функциями в Azure Resource Manager.

Дополнительные сведения см. в статье Перенесите свои ресурсы IaaS в Azure Resource Manager до 1 марта 2023 г.

Если вы не можете подключиться к виртуальной машине Linux в Azure из-за утерянного пароля, неправильного ключа SSH или проблем с конфигурацией SSH, воспользуйтесь расширением VMAccessForLinux с интерфейсом командной строки Azure, чтобы сбросить пароль или ключ SSH либо исправить конфигурацию SSH и проверить согласованность диска.

Примечание

В Azure предлагаются две модели развертывания для создания ресурсов и работы с ними: модель развертывания с помощью Resource Manager и классическая модель. В этой статье рассматривается использование классической модели развертывания. Для большинства новых развертываний Майкрософт рекомендует использовать модель диспетчера ресурсов. Узнайте, как выполнить эти действия с помощью модели Resource Manager.

Благодаря Azure CLI команду azure vm extension set можно использовать прямо в интерфейсе командной строки (это может быть Bash, окно терминала, командная строка) для доступа к командам. Выполните команду azure help vm extension set для получения подробных сведений об использовании расширения.

Благодаря Azure CLI вы сможете выполнять следующие задачи:

Обязательные условия

Выполните следующие действия:

  • Вам также нужно установить интерфейс командной строки Azure и подключиться к своей подписке для использования ресурсов Azure, связанных с вашей учетной записью.
  • Задайте режим, необходимый для классической модели развертывания, введя в командной строке следующее:
        azure config mode asm
    
  • Имейте при себе новый пароль или набор ключей SSH, если хотите сбросить один из них. они не нужны, если вы хотите сбросить конфигурацию SSH.

Сбросьте пароль.

  1. Создайте на локальном компьютере файл с именем PrivateConf.json с такими строками. Замените myUserName и myP@ssW0rd собственным именем пользователя и паролем и задайте дату окончания срока действия.

        {
        "username":"myUserName",
        "password":"myP@ssW0rd",
        "expiration":"2020-01-01"
        }
    
  2. Запустите эту команду, подставив имя своей виртуальной машины вместо myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* –-private-config-path PrivateConf.json
    

Сброс ключа SSH

  1. Создайте файл с именем PrivateConf.json с таким содержимым. Замените значение строк myUserName и mySSHKey собственными данными.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey"
        }
    
  2. Запустите эту команду, подставив имя своей виртуальной машины вместо myVM.

     azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Сброс пароля и ключа SSH

  1. Создайте файл с именем PrivateConf.json с таким содержимым. Замените значения myUserName, мисшкэй и myP@ssW0rd собственными сведениями.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey",
        "password":"myP@ssW0rd"
        }
    
  2. Запустите эту команду, подставив имя своей виртуальной машины вместо myVM.

        azure vm extension set MyVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Создание новой учетной записи пользователя sudo

Если вы забыли имя пользователя, вы можете воспользоваться расширением VMAccess для создания нового имени с полномочиями sudo. В этом случае существующие имя пользователя и пароль останутся без изменений.

Чтобы создать нового пользователя sudo с доступом по паролю, используйте сценарий для Сброса пароля и укажите новое имя пользователя.

Чтобы создать нового пользователя sudo с доступом по ключу SSH, используйте сценарий для Сброса ключа SSH и укажите новое имя пользователя.

Также вы можете использовать сценарий для Сброса пароля и ключа SSH для создания нового пользователя с доступом как по паролю, так и по ключу SSH.

Сброс конфигурации SSH

Если конфигурация SSH нарушена, вы можете потерять доступ к виртуальной машине. Чтобы сбросить конфигурацию до состояния по умолчанию, вы можете использовать расширение VMAccess. Для этого вам необходимо просто установить ключ "reset_ssh" в значение "True". Расширение перезапускает SSH-сервер, открывает порт SSH в вашей виртуальной машине и сбрасывает настройки SSH до значений по умолчанию. Учетная запись пользователя (имя, пароль или ключи SSH) останется без изменений.

Примечание

Файл конфигурации SSH расположен по следующему пути: /etc/ssh/sshd_config.

  1. Создайте файл с именем PrivateConf.json с таким содержимым.

        {
        "reset_ssh":"True"
        }
    
  2. Запустите эту команду, подставив имя своей виртуальной машины вместо myVM.

     	azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Удаление пользователя

Чтобы удалить учетную запись пользователя без выполнения входа в виртуальную машину, вы можете воспользоваться таким сценарием.

  1. Создайте файл с именем PrivateConf.json с таким содержимым, подставив имя пользователя, которое необходимо удалить, вместо removeUserName.

        {
        "remove_user":"removeUserName"
        }
    
  2. Запустите эту команду, подставив имя своей виртуальной машины вместо myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Отображение состояния расширения VMAccess

Чтобы отобразить состояние расширения VMAccess, запустите следующую команду.

        azure vm extension get

проверка согласованности добавленных дисков

Для запуска служебной программы fsck на всех дисках виртуальной машины Linux необходимо сделать следующее.

  1. Создайте файл с именем PublicConf.json с таким содержимым. Проверка диска принимает логическое значение, указывающее, нужно ли выполнять проверку дисков, подключенных к виртуальной машине.

        {   
        "check_disk": "true"
        }
    
  2. Запустите выполнение этой команды, подставив имя своей виртуальной машины вместо myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json 
    

Восстановление дисков

Чтобы восстановить диски, которые не подключаются или при подключении которых возникают ошибки конфигурации, используйте расширение VMAccess для сброса конфигурации подключения на виртуальной машине Linux. При этом подставьте имя своего диска вместо myDisk.

  1. Создайте файл с именем PublicConf.json с таким содержимым.

        {
        "repair_disk":"true",
        "disk_name":"myDisk"
        }
    
  2. Запустите выполнение этой команды, подставив имя своей виртуальной машины вместо myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json
    

Дальнейшие действия

  • Сведения об использовании командлетов Azure PowerShell или шаблонов Azure Resource Manager для сброса пароля или ключа SSH, исправления конфигурации SSH и проверки согласованности диска см. в документации по расширению VMAccess на портале GitHub.
  • Для сброса пароля или ключа SSH для виртуальной машины Linux, развернутой в классической модели развертывания, можно также использовать портал Azure . Использовать портал для виртуальной машины Linux, развернутой в модели развертывания Resource Manager, пока невозможно.
  • В статье Обзор расширений и компонентов виртуальной машины приводятся дополнительные сведения об использовании расширений для виртуальных машин Azure.