Вопрос или проблема
У меня есть машина Linux в Google Cloud, созданная с помощью Bitnami.
Она работала хорошо, и к ней можно было получить доступ через SSH, используя веб-консоль или PuTTY. Однако сегодня внезапно к ней невозможно подключиться через SSH ни одним способом. Когда я пытаюсь изменить ВМ и заменить SSH-ключи или внести какие-либо другие изменения, получаю следующую ошибку:
Редактирование экземпляра ВМ: "***" завершилось неудачно.
Ошибка: Указанный отпечаток не соответствует текущему отпечатку метаданных
ВМ все еще работает, и сервисы, развернутые на ней, продолжают функционировать, но изменения невозможно внести. У меня есть около 10 других ВМ, и ко всем остальным все еще есть доступ через SSH.
Я пытался следовать нескольким руководствам в документации GC, но почти ничего нельзя сделать без доступа к командной строке.
Как предложено в комментариях, вы должны проверить, правильно ли настроены SSH-ключи для этой ВМ, и Отключить проектные SSH-ключи не установлен.
Если нет SSH-ключей, вы можете сгенерировать свою пару:
выполните ssh-keygen -t rsa -b 4096 -C "[email protected]"
на своей локальной машине и скопируйте содержимое id_rsa.pub,
выберите Редактировать на странице сведений о ВМ, нажмите Показать и редактировать, затем Добавить элемент и вставьте его.
Консоль облака автоматически проверит синтаксис ключа.
Сохраните внизу и попробуйте подключиться к ВМ из локального терминала или PuTTY.
Если вы используете другую ОС или вам нужно больше информации, вы можете найти ее здесь.
Если создание пары вручную не решает проблему, вы можете попробовать использовать последовательную консоль для доступа к ВМ:
Начните с разрешения доступа к последовательному порту:
--metadata serial-port-enable=TRUE
Затем добавьте временный аккаунт: выберите затронутую ВМ, нажмите редактировать и добавьте пользовательские метаданные:
Ключ: startup-script
Значение: #!/bin/bash useradd --groups google-sudoers tempuser echo "tempuser:password" | chpasswd
Сохраните изменения и нажмите Подключиться к последовательной консоли
Оттуда вы можете проверить статус службы ssh или редактировать ~/.ssh/authorized_keys
Если ни один из этих шагов не помогает, вы можете клонировать ваш экземпляр.
это может быть связано с изменениями целостности. Поэтому выполните эту команду и попробуйте еще раз, пожалуйста:
gcloud compute instances update VM_NAME --shielded-learn-integrity-policy --project PROJECT_ID
Проверьте, не работает ли на вашем сервере отдельный брандмауэр, помимо облачного брандмауэра.
Ответ или решение
Если вы столкнулись с ошибкой "Supplied fingerprint does not match current metadata fingerprint" при попытке редактирования виртуальной машины (VM) на Google Cloud и не можете подключиться к этой VM через SSH, есть несколько возможных причин этой проблемы и пути ее решения. Давайте рассмотрим, как это может быть связано с вашей конфигурацией и что можно предпринять.
Теория
Ошибка отпечатка метаданных: Это означает, что отпечаток метаданных, который вы предоставляете при попытке изменения параметров VM, не совпадает с текущим отпечатком метаданных, заданным в системе. Этот отпечаток используется для обеспечения согласованности данных, и несоответствие может указывать на проблемы с метаданными VM, возможно, из-за изменений, которые происходили вне обычного процесса.
SSH-доступ: SSH-ключи могут быть не в порядке, или вы случайно заблокировали проектные SSH-ключи, что может ограничить доступ к VM. Это может случиться, если для VM настроены индивидуальные ключи, а блокировка проектных SSH-ключей включена.
Пример
Пример решения: Рассмотрим кейс, когда после внесения изменений или обновлений в вашу виртуальную среду возникло несоответствие отпечатков метаданных. Может быть, вы пробовали изменить SSH-ключи или другие параметры без обновления метаданных VM через панель управления.
Применение
-
Проверка и сброс SSH-ключей:
- Снятие блокировки проектных SSH-ключей: Убедитесь, что параметр "Block project-wide SSH keys" не установлен. Для этого перейдите в настройки вашей VM на Google Cloud Console, выберите "Редактировать" и проверьте соответствующий флаг.
- Генерация нового SSH-ключа: Если в настройках VM отсутствуют SSH-ключи, вы можете создать новую пару ключей на вашем локальном устройстве с помощью команды
ssh-keygen
, как указано в вашем примере статье, и добавить открытый ключ в метаданные VM.
-
Использование серийного консоли для доступа:
- Включение серийного порта: Чтобы напрямую подключиться к VM через серийную консоль, вам нужно включить метаданные серийного порта, добавив
--metadata serial-port-enable=TRUE
. - Добавление временного аккаунта: Создайте временный аккаунт с правами администратора через пользовательский скрипт запуска, который вы добавите в метаданные VM. Это позволит вам войти в систему через сериальную консоль и настроить SSH.
- Включение серийного порта: Чтобы напрямую подключиться к VM через серийную консоль, вам нужно включить метаданные серийного порта, добавив
-
Проверка межсетевых экранов:
- Убедитесь, что вы не настроили дополнительные межсетевые экраны на уровне операционной системы, которые могут блокировать SSH-трафик, помимо правил в облачном межсетевом экране Google Cloud.
-
Исправление настроек целостности:
- Если вы подозреваете, что проблема может быть связана с нарушением целостности VM в результате недавних изменений, выполните команду, которая обновит политику целостности:
gcloud compute instances update VM_NAME --shielded-learn-integrity-policy --project PROJECT_ID
.
- Если вы подозреваете, что проблема может быть связана с нарушением целостности VM в результате недавних изменений, выполните команду, которая обновит политику целостности:
-
Клонирование диска:
- Если невозможно устранить проблему через вышеупомянутые шаги, вы можете создать копию загрузочного диска текущей VM и запустить новую VM, используя этот диск, чтобы минимизировать время простоя и обезопасить данные.
Заключение
Проблема с несоответствием отпечатков метаданных может быть вызвана различными факторами, такими как неправильное обновление SSH-ключей, изменения в конфигурации метаданных или проблемы с межсетевым экраном. Поэтапное выполнение предложенных шагов и стратегия устранения неполадок помогут вам восстановить доступ к VM и внести необходимые изменения.