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