SSH-соединение экземпляра виртуальной машины Google Cloud ~60 секунд с 30-секундной поддержкой активности

Я подключался к экземпляру виртуальной машины Google Cloud через gcloud ssh из моей macOS:

$ gcloud compute ssh [username]@[instance]

Начиная с недели назад, соединение разорвется через ~60 секунд простоя и вернется:

Connection to [my_external_ip] closed by remote host.
Connection to [my_external_ip] closed.
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

Я настроил время поддержки TCP на 30 секунд как на своем MacBook, так и на виртуальной машине. Но это не решило проблему.

Есть идеи, как мне продлить продолжительность соединения?

1 ответ

Это вряд ли проблема с настройкой тайм-аута, но скорее проблема с правилами или маршрутами вашего брандмауэра.

Во-первых, я бы предложил проверить ваши правила брандмауэра и убедиться, что у вас есть входное правило брандмауэра, открывающее порт 22. Если у вас есть, проверьте конфигурацию этого правила, в частности:

  • Проверьте диапазон IP в "Исходных фильтрах". Включает ли диапазон IP-адрес вашего домашнего компьютера? В целях тестирования, чтобы убедиться в этом, вы можете временно установить это значение на 0.0.0.0/0, чтобы включить все IP-адреса.

  • Проверьте раскрывающийся список "Цели". Установлен ли этот параметр на "Все экземпляры в сети" или на "Заданные целевые теги"? Если вы установили для него "Заданные целевые теги", убедитесь, что тот же тег добавлен в раздел "Сетевые теги" экземпляра, иначе правило брандмауэра не будет применяться к экземпляру и разрешать трафик SSH.

  • Убедитесь, что это правило имеет более высокий приоритет, чем любое другое правило, которое может противодействовать ему (когда я говорю более высокий приоритет, я имею в виду меньшее число, например, правило с приоритетом 1000 является более высоким приоритетом, чем правило с приоритетом 20000).

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

gcloud compute routes list

Убедитесь, что есть запись, которая содержит следующее:

 default          0.0.0.0/0       default-internet-gateway 

РЕДАКТИРОВАТЬ

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

Вы можете получить доступ к последовательной консоли, щелкнув имя экземпляра в консоли GCP, а затем щелкнув "Последовательный порт 1 ". Когда вы запускаете SSH в экземпляр, информация о сеансе SSH заполняет вывод последовательной консоли (это можно обновить, нажав "Обновить" вверху страницы.) Информация об окончании сеанса также заполняет последовательную консоль. Там может быть некоторая полезная информация / подсказки о том, почему сеанс заканчивается в этих выходных данных.

Может также стоить проверить состояние демона SSH в экземпляре и перезапустить его, чтобы увидеть, если это изменит:

Проверьте статус sshd:

systemctl status sshd

Перезапустите sshd:

sudo systemctl restart sshd
Другие вопросы по тегам