Облачная платформа Google исправила SSH

#google-cloud-platform #ssh #google-compute-engine

# #google-облачная платформа #ssh #google-compute-engine

Вопрос:

У меня проблема с доступом по SSH в моем Google Compute Engine. Я создал сервер, настроил на нем приложение и настроил домен, и все работает. Через несколько дней, когда я хотел подойти к ней, чтобы внести изменения, мой SSH не работал. У меня есть одно предположение, что я включил брандмауэр и не добавил правило для SSH, может быть, это проблема? Но как теперь получить доступ к компьютеру и включить его?

Заранее спасибо.

Ответ №1:

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

Пожалуйста, ознакомьтесь с пошаговыми инструкциями ниже:

  1. Включить последовательное консольное соединение с gcloud помощью команды:
      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE 
     --metadata serial-port-enable=TRUE
     

или перейдите в Compute Engine -> VM instances -> нажмите NAME_OF_YOUR_VM_INSTANCE -> нажмите EDIT -> перейдите в раздел Remote access и проверьте Enable connecting to serial ports

  1. Создайте временного пользователя и пароль для входа в систему: выключите виртуальную машину и задайте сценарий запуска, добавив в раздел Custom metadata ключ startup-script и значение:
      #!/bin/bash
     useradd --groups google_sudoers tempuser
     echo "tempuser:password" | chpasswd
     

а затем запустите свою виртуальную машину.

  1. Подключитесь к своей виртуальной машине через последовательный порт с gcloud помощью команды:
      gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
     

    или перейдите в Compute Engine -> VM instances -> нажмите на NAME_OF_YOUR_VM_INSTANCE -> и нажмите на Connect to serial console

  2. Проверьте, что пошло не так.
  3. Отключите доступ через последовательный порт с gcloud помощью команды:
      gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE 
     --metadata serial-port-enable=FALSE
     

или перейдите в Compute Engine -> VM instances -> нажмите NAME_OF_YOUR_VM_INSTANCE -> нажмите EDIT -> перейти к разделу Remote access и снимите флажок Enable connecting to serial ports . Имейте в виду, что в соответствии с документацией, взаимодействующей с последовательной консолью:

Внимание: интерактивная последовательная консоль не поддерживает ограничения доступа на основе IP, такие как белые списки IP. Если вы включите интерактивную последовательную консоль на экземпляре, клиенты могут попытаться подключиться к этому экземпляру с любого IP-адреса. Любой может подключиться к этому экземпляру, если он знает правильный SSH-ключ, имя пользователя, идентификатор проекта, зону и имя экземпляра. Используйте правила брандмауэра для управления доступом к вашей сети и определенным портам.

Кроме того, посмотрите на сторонний пример решения проблемы блокировки вычислительного движка.

Если вам не удалось подключиться через последовательную консоль, проверьте журналы:

  1. Перейдите в Compute Engine -> VM instances -> нажмите на NAME_OF_YOUR_VM -> в VM instance details разделе «Найти журналы» и нажмите Serial port 1 (console)
  2. Перезагрузите экземпляр виртуальной машины еще раз.
  3. Проверьте полный журнал загрузки на наличие ошибок или / и предупреждений.

Если вы обнаружили ошибки / предупреждения, связанные с дисковым пространством, вы можете попытаться изменить его размер в соответствии с документацией по изменению размера зонального постоянного диска, а также в соответствии со статьей Восстановление недоступного экземпляра или полного загрузочного диска:

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