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