Я хочу использовать gcloud в Git Bash для копирования файлов на мой экземпляр виртуальной машины с помощью следующей команды:
gcloud.cmd compute scp --recurse app/ root@[Instance_name]:/var/www/test --zone=northamerica-northeast1-a --project [project_name]
что приводит к:
Server refused public-key signature despite accepting key!
Fatal: Disconnected: No supported authentication methods available (server sent: publickey)
Я посмотрел на var / log / auth.log, и соответствующая ошибка:
session opened for user root by david(uid=0)
Я использовал логин gcloud auth для аутентификации, который перенаправил меня на стандартную веб-страницу входа в Google, и я аутентифицировал себя с помощью своего пользователя. Похоже, что не хватает прав. Как я могу решить проблему, чтобы я мог правильно аутентифицироваться и копировать файлы
Из соображений безопасности большинство образов ОС не допускают прямого входа пользователя «root» (ssh / scp). Файл конфигурации «/ etc / ssh / sshd_config» может быть настроен / изменен, чтобы разрешить вход root через SSH. Например, вот пример для включения входа root через SSh в Red Hat Linux. Однако это компромисс с безопасностью.
Как отметил @DazWilkin в комментарии, вы можете аутентифицироваться в экземпляре, используя текущего пользователя, вошедшего в систему. Он должен работать. Ключи SSH будут аутентифицировать доступ пользователя.
Обратитесь к этому документация для получения дополнительной информации. Вы можете создать ключи SSH и добавить к метаданным экземпляра или метаданным проекта в зависимости от ваших требований и можете запустить команду с параметром "--ssh-key-file" в команде 'gcloud compute scp'. Это должно быть хорошо для аутентификации с помощью предоставленных ключей SSH.