Отказ в подключении к виртуальной машине Google Cloud после восстановления снимка - PullRequest
0 голосов
/ 06 сентября 2018

У меня проблемы с доступом к одной из моих виртуальных машин (здесь она называется myvm1) после восстановления диска из моментального снимка. Вот что я сделал вчера (который работал просто отлично):

  • Я сделал снимок диска 1.
  • Я создал новый диск с именем disk2, используя созданный выше снимок.
  • Я подключил диск к myvm1 через консоль Google.
  • Я размонтировал диск1 и смонтировал диск2.
  • Я удалил диск1.

Все работало нормально, и данные базы данных на disk2 были доступны по желанию. На этом диске больше ничего нет.

Сегодня я хотел «переименовать» диск2 в диск1 (чтобы избежать будущих проблем с нашими настройками Terraform). Я сделал это, выполнив следующее:

  • Я сделал снимок диска 2.
  • Я создал новый диск, назвав его disk1, используя снимок выше.
  • Я подключил диск к myvm1 с помощью терминала: gcloud compute --project=myproject instances attach-disk myvm1 --disk disk1

После этого, когда я попытался выполнить ssh в myvm1 (для размонтирования и монтирования), я получил

ssh: подключение к хосту myvm1, порт 22: соединение отклонено

Я попытался выполнить следующее / расследовать следующее:

  • многократная остановка и запуск виртуальной машины (занимает значительно больше времени, чем у других виртуальных машин в том же проекте)
  • отсоединение диска1 (и его повторное подключение)

Другая информация:

  • другие виртуальные машины в том же проекте по-прежнему доступны через ssh.
  • Вчера или сегодня я больше ничего не делал с ВМ, кроме того, что я написал выше. Система не использовалась между вчера и сейчас (она была закрыта на ночь, чтобы сэкономить деньги).
  • Использование Google Console SSH не работает, НО не работает и для других виртуальных машин, так как мы подключаемся с помощью закрытых ключей.
  • "Экземпляр загружается, а sshd еще не запущен." - Он указан как RUNNING.
  • "Экземпляр не работает sshd." Я не отключил вручную sshd.
  • "sshd прослушивает порт, отличный от того, к которому вы подключаетесь." Я не сделал никаких изменений в портах.
  • «Нет правила брандмауэра, разрешающего SSH-доступ к порту». Кроме того, в разделе «Правила межсетевого экрана и сведения о маршрутах» включен порт 22. Кроме того, правила брандмауэра идентичны другим виртуальным машинам в том же проекте.
  • «Правило брандмауэра, разрешающее доступ по SSH, включено, но не настроено для разрешения подключений из служб консоли GCP». Мы не хотим иметь возможность подключаться через консоль GCP, чтобы это не имело значения.
  • "Экземпляр закрыт." - Это работает.

Отладочная информация для ssh-вызова:

me@mycomputer:~/project$ ssh myvm1 -vvv
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/me/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "myvm1" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to myvm1 [10.23.0.3] port 22.
debug1: connect to address 10.23.0.3 port 22: Connection refused
ssh: connect to host myvm1 port 22: Connection refused

Я посмотрел на решение, упомянутое здесь Почему после перезапуска экземпляр Google Cloud Compute Engine отказывает в ssh-соединении? но так как я еще не смонтировал / размонтировал ни один из дисков, я не понимаю, как это может быть той же проблемой.

Я был бы очень признателен за любую помощь, которую вы мне могли бы оказать. Решения, связанные с созданием нового экземпляра, не актуальны, так как я хочу знать, что в первую очередь пошло не так, чтобы этого не произошло в производственной среде. К счастью, myvm1 - это просто система песочницы.

Ответы [ 2 ]

0 голосов
/ 05 января 2019

У меня была такая же проблема. Я думаю, что файл снимка поврежден.

0 голосов
/ 12 сентября 2018

Ошибка порта 22 может исходить из двух источников: брандмауэр неправильно настроен на GCP или порт 22 не принимает соединения SSH из вашего экземпляра. Предполагая, что брандмауэр настроен правильно, так как он работает в других экземплярах, попробуйте войти в систему с последовательной консолью и проверить iptable .

Для подключения к последовательной консоли вам необходимо выполнить следующее:

1). Активируйте кнопку «Подключиться к последовательной консоли».

Перейдите к экземплярам виртуальной машины, щелкните свою виртуальную машину, выберите «Правка» и активируйте «включить подключение к последовательным портам» в области удаленного доступа и нажмите «Сохранить».

2). Создайте имя пользователя и пароль.

Перейдите к экземпляру Vm, снова нажмите на Vm, отредактируйте и заполните раздел пользовательских метаданных:

В ключе: startup-script

В значении:

#!/bin/bash 
sudo useradd -G sudo pamela
sudo echo 'pamela:pamela5' | chpasswd

(Это скрипт, который создает имя пользователя: pamela и пароль: pamela5, который вы собираетесь использовать позже. Пожалуйста, используйте что-то еще в целях безопасности)

3). Чтобы изменения вступили в силу, необходима перезагрузка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...