Я пытаюсь скопировать локальные файлы в / var / www /
.
Экземпляр имеет два набора ключей. Один для создателя экземпляра, который создается по умолчанию, и один для удаленного доступа, который я настроил вручную.
Я успешно вошел в систему через gcloud
как последний пользователь, и я могу перейти на root, как только я я вошел в систему. Но когда я пытаюсь войти в систему с правами root через root @ instance-name
или instance-creator-name @ instance-name
, я получаю Permission denied (publickey)
.
Нужно ли мне сгенерировать новую пару ключей для создателя экземпляра? Можно ли где-нибудь найти закрытый ключ создателя экземпляра (не нарушает ли это безопасность)? Есть ли другой способ войти в систему как root?
Изменить: docs оставляет эту часть неуказанной.
В следующем примере показано копирование папки с именем css в каталог документов> по умолчанию и выполнение этого как пользователь root, потому что этот пользователь владеет удаленным каталогом / var / www:
$ gcloud compute copy-files ~ / mysite / css root @
: / var / www
Это должно работать в соответствии с документацией, но вместо этого я получаю Permission denied
. Думая, что я мог испортить свою конфигурацию SSH, я заставил gcloud использовать закрытый ключ по умолчанию, а затем сгенерированный вручную ключ, но ни один из них не сработал.
По соображениям безопасности стандартные образы Google не обеспечивают возможность прямого подключения с правами root. Создатель экземпляра и все пользователи, которые были добавлены с использованием значения sshKeys метаданных, автоматически становятся администраторами учетной записи с возможностью запускать sudo, не запрашивая пароль, как вы упомянули.
Хотя это не рекомендуется, вы можете изменить
/ etc / ssh / sshd_config
и перезапустите sshd, чтобы изменить эту политику
Установите SDK Google Cloud локально на свой компьютер. Это автоматически выполнит вход в Google и установит необходимые разрешения. Делает жизнь намного проще: https://cloud.google.com/sdk/downloads