SSH на консоли отказано в доступе к облаку Google (publickey) из-за ошибки файла google-cloud-sdk - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в облачных вычислениях и пытаюсь использовать SSH для управления экземпляром своей виртуальной машины, но когда я использую команду (с отладкой)

gcloud compute ssh my-instance-name --verbosity = debug

это ошибка показа

DEBUG: (gcloud.compute.ssh) [/ usr / bin / ssh] завершена с кодом возврата [255]. Трассировка (последний вызов был последним): файл "/google/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", строка 983, в файле "Выполнить ресурсы = calliope_command.Run" (cli = self, args = args)«/google/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py», строка 784, в файле «Запустить ресурсы = command_instance.Run (args)» / google / google-cloud-sdk / lib / surface / compute/ssh.py ", строка 262, в Выполнить return_code = cmd.Run (ssh_helper.env, force_connect = True) Файл" /google/google-cloud-sdk/lib/googlecloudsdk/command_lib/util/ssh/ssh.py "строка 1256, в Run run CommandError (args [0], return_code = status) CommandError: [/ usr / bin / ssh] вышла с кодом возврата [255]. ОШИБКА: (gcloud.compute.ssh) [/ usr / bin / ssh] завершена с кодом возврата [255].

Я пытаюсь решить проблему по этой ссылке, но это не работает https://groups.google.com/forum/#!topic/gce-discussion/O-c10TM4ZLM

Ответы [ 3 ]

0 голосов
/ 25 октября 2019

SSH код ошибки 255 - это общая ошибка, возвращаемая GCP. Вы можете попробовать один из следующих вариантов:

1. Подождите несколько минут и попробуйте снова. Возможно, что:

  • Экземпляр не завершил запуск.

  • Метаданные для ключей SSH не были переданы впроект или экземпляр.

    • Гостевая среда еще не прочитала метаданные ключей SSH.

2. Убедитесь, что доступ SSH к экземпляру не заблокирован брандмауэром .

gcloud compute firewall-rules list | grep "tcp:22"

При необходимости создайте правило брандмауэра, чтобы разрешить TCP 22 для заданной метки сети, подсети или экземпляра VPC.

gcloud compute firewall-rules create ssh-allow-incoming --priority=0 --allow=tcp:22 --network=[VPC-Network]

3. Убедитесь, что в корневом томе не осталось свободного места. Сообщения, подобные следующим, будут видны в журнале консоли , когда на нем не хватает места на диске:

... На устройстве не осталось места ...

... google-account: ERROR Исключение, вызывающее обработчик ответа. [Errno 2] Не найден временный каталог, который можно использовать в ['/ tmp', '/ var / tmp', '/ usr / tmp', '/']...

4,Убедитесь, что экземпляру не хватает памяти

5. Убедитесь, что метаданные временных ключей SSH установлены для проекта или экземпляра .

Наконец, вы можете использовать любой из поддерживаемых или сторонние методы

0 голосов
/ 31 октября 2019

Предполагая, что у вас есть правильные разрешения IAM, GCP гораздо проще и предпочитает использовать OSlogin для ssh в экземпляре, а не для управления ключами ssh

в облачной оболочке, введите

gcloud compute --project PROJECTID project-info add-metadata --metadata enable-oslogin=TRUE

Это включает OSLogin во всех экземплярах проекта, вместо использования ключей ssh, gcp проверит ваши разрешения IAM и выполнит аутентификацию на основе этих ключей.

Если вы не являетесь владельцем проекта, убедитесь, что у вас есть полномочия compute.osloginviewer или администратора в Cloud IAM

После включения попробуйте снова выполнить SSHing в экземпляр, используя отправленную вами команду.

0 голосов
/ 25 октября 2019

Это не конкретный ответ, но я думаю, что сначала вы должны установить свой проект следующим образом:

gcloud config set project PROJECT_ID

Затем

gcloud compute ssh my-instance-name --verbosity=debug

Эта ссылка будет полезна:

https://cloud.google.com/sdk/gcloud/reference/compute/ssh

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...