Ошибка аутентификации при использовании Git Bash для подключения к Google Cloud (gcloud)

Я хочу использовать 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, и я аутентифицировал себя с помощью своего пользователя. Похоже, что не хватает прав. Как я могу решить проблему, чтобы я мог правильно аутентифицироваться и копировать файлы


481
1

Ответ:

Из соображений безопасности большинство образов ОС не допускают прямого входа пользователя «root» (ssh / scp). Файл конфигурации «/ etc / ssh / sshd_config» может быть настроен / изменен, чтобы разрешить вход root через SSH. Например, вот пример для включения входа root через SSh в Red Hat Linux. Однако это компромисс с безопасностью.

Как отметил @DazWilkin в комментарии, вы можете аутентифицироваться в экземпляре, используя текущего пользователя, вошедшего в систему. Он должен работать. Ключи SSH будут аутентифицировать доступ пользователя.

Обратитесь к этому документация для получения дополнительной информации. Вы можете создать ключи SSH и добавить к метаданным экземпляра или метаданным проекта в зависимости от ваших требований и можете запустить команду с параметром "--ssh-key-file" в команде 'gcloud compute scp'. Это должно быть хорошо для аутентификации с помощью предоставленных ключей SSH.