Назад | Перейти на главную страницу

Невозможно подключиться к виртуальной машине GCE по SSH из-за пределов сети Google Cloud

Я могу получить доступ к недавно подготовленному экземпляру компьютера Google под управлением Ubuntu 16 через интерфейс Google Cloud Web SSH, а также из других вычислительных экземпляров Google (даже из разных проектов)

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

Я уже проверял UFW, он настроен на разрешение 22 / tcp.

Также установлено правило входа брандмауэра ssh по умолчанию: default-allow-ssh Ingress Применить ко всем
Диапазоны IP: 0.0.0.0/0 tcp: 22 Разрешить

Не уверен, в чем проблема. Моя домашняя сеть может получить доступ к другим экземплярам GCE через SSH, и веб-сервер этого конкретного экземпляра GCE также доступен.

Кажется, именно SSH-соединения из моей домашней сети блокируются.

Сообщение было слишком длинным для комментария ...

Я надеялся, что эта команда дала нам больше подсказок :(. Без изучения правил FW вашего проекта и сетевых тегов виртуальных машин будет сложно сузить круг вопросов.

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

Вы можете найти четкие инструкции в документации Google о том, как сгенерировать эти ключи и загрузить их по ссылке [1].

Как только вы это сделаете, правильная команда для ssh:

ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]

где:

  • [PATH_TO_PRIVATE_KEY] - это путь к вашему файлу личного ключа SSH.
  • [ИМЯ ПОЛЬЗОВАТЕЛЯ] - это имя пользователя, подключающегося к экземпляру. Имя пользователя для вашего открытого ключа SSH было указано при создании ключа SSH. Вы можете подключиться к экземпляру как этот пользователь, если у экземпляра есть действительный открытый ключ SSH для этого пользователя и если у вас есть соответствующий закрытый ключ SSH.
  • [EXTERNAL_IP_ADDRESS] - это внешний IP-адрес вашего экземпляра.

Если это не сработает, вам следует попытаться связаться со службой поддержки GCP, могут быть некоторые вещи, которые вы не видите, например, ваш проект может быть частью организации и находится под периметром VPC, который предотвращает доступ из внешних сетей [1]

[1] https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys

[2] https://cloud.google.com/vpc-service-controls/

Какой IP вы используете?

Вы должны использовать внешний IP-адрес своего экземпляра, если хотите подключиться к SSH извне GCP. См. Официальную документацию GCP о том, как подключиться к вашим экземплярам (расширенные методы).

Как только вы сможете подключиться к своему экземпляру, вы можете настроить вход в ОС, чтобы упростить вам задачу.

«Вход в ОС позволяет использовать роли IAM в Compute Engine для управления доступом SSH к экземплярам Linux и является альтернативой ручному управлению доступом к экземплярам путем добавления и удаления ключей SSH в метаданных».

См. Ссылку [2] для настройки входа в ОС.

Если приведенные выше рекомендации не работают, предоставьте вывод команды ssh с -vvv, чтобы понять, что происходит.

[1] https://cloud.google.com/compute/docs/instances/connecting-advanced#thirdpartytools

[2] https://cloud.google.com/compute/docs/instances/managing-instance-access