Я могу получить доступ к недавно подготовленному экземпляру компьютера 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]
где:
Если это не сработает, вам следует попытаться связаться со службой поддержки GCP, могут быть некоторые вещи, которые вы не видите, например, ваш проект может быть частью организации и находится под периметром VPC, который предотвращает доступ из внешних сетей [1]
[1] https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys
Какой 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