Настройка загрузочных томов Windows

В гостевых ОС Windows по умолчанию не предустановлены ни Cloudbase-Init, ни OpenSSH Server. Их необходимо установить и настроить вручную.

Как установить Cloudbase-Init и OpenSSH Server в виртуальную машину Windows

  1. Выполните вход в ВМ Windows.
  2. Создайте новую учетную запись администратора, которая будет использоваться для SSH-подключений, и выполните вход с этой учетной записью.
  3. Чтобы установить и настроить OpenSSH Server

    1. Запустите Windows PowerShell с правами администратора и установите для политики выполнения значение Unrestricted, чтобы иметь возможность выполнять скрипты.

      > Set-ExecutionPolicy Unrestricted
      
    2. Загрузите OpenSSH Server (например, из репозитория GitHub), распакуйте архив в папку C:\Program Files и установите его, выполнив следующую команду:

      > & 'C:\Program Files\OpenSSH-Win64\install-sshd.ps1'
      
    3. Запустите сервис sshd и задайте для него автоматический тип запуска.

      > net start sshd
      > Set-Service sshd -StartupType Automatic
    4. Откройте порт TCP 22 для сервиса OpenSSH в брандмауэре Windows.

      • В Windows 8.1, Windows Server 2012 и более новых версиях выполните следующую команду:

        > New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName OpenSSH
        
      • В Windows 7, Windows Server 2008 и Windows Server 2008 R2 выполните следующую команду:

        > netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
        
    5. Откройте файл C:\ProgramData\ssh\sshd_config.

      > notepad 'C:\ProgramData\ssh\sshd_config'
      

      Закомментируйте следующие строки в конце файла:

      #Match Group administrators
      #AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

      Сохраните изменения.

    6. Создайте папку .ssh в C:\Users\<current_user> и пустой файл authorized_keys внутри нее.

      > cd C:\Users\<current_user>
      > mkdir .ssh
      > notepad .\.ssh\authorized_keys

      Удалите расширение .txt у созданного файла.

      > move .\.ssh\authorized_keys.txt .\.ssh\authorized_keys
      
    7. Измените разрешения для созданного файла, чтобы отключить наследование.

      > icacls .\.ssh\authorized_keys /inheritance:r
      
  4. Загрузите Cloudbase-Init (например, с официального сайта), запустите установку и следуйте инструкциям на экране.

    1. В окне Параметры конфигурации введите текущее имя пользователя в поле Имя пользователя.

      Пароль учетной записи будет сброшен при следующем запуске ВМ. Вы сможете выполнить вход с этой учетной записью, используя метод аутентификации с ключом, либо установить новый пароль с помощью скрипта настройки.

    2. После окончания установки не запускайте Sysprep и нажмите Завершить.

    3. Запустите Windows PowerShell с правами администратора и откройте файл C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf.

      > notepad 'C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf'
      

      Добавьте metadata_services и plugins в две строки.

      metadata_services=\
      cloudbaseinit.metadata.services.configdrive.ConfigDriveService,\
      cloudbaseinit.metadata.services.httpservice.HttpService\
      plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,\
      cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin,\
      cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,\
      cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,\
      cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,\
      cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin,\
      cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,\
      cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,\
      cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,\
      cloudbaseinit.plugins.common.userdata.UserDataPlugin,\
      cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin,\
      cloudbaseinit.plugins.windows.winrmcertificateauth.\
      ConfigWinRMCertificateAuthPlugin,\
      cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin

      Не забудьте удалить все символы обратной косой черты в строках выше.

      Сохраните изменения.