Почему я не могу перенести ssh-ключи в os-login? - PullRequest
0 голосов
/ 22 января 2019

Я пытался перенести свой публичный ssh-ключ в мой проект gcloud, но я получаю следующую ошибку:

   gcloud compute os-login ssh-keys add --key-file=.ssh/gcloud-key.pub --ttl 365d
ERROR: (gcloud.compute.os-login.ssh-keys.add) FAILED_PRECONDITION: <eye3-stackless title='/FocusBackend.MutateData, APPLICATION_ERROR'/>APPLICATION_ERROR;MutateDataHandler{username=cloud-cluster-proxy, role=focus-backend-proxy, run_as_role=, debug=, fingerprint=0} failed com.google.focus.backend.server.OperationDeniedException: Reason: UNIQUE_VIOLATION; A field in the mutate request violates unique constraint. See the SchemaValidationMessage on the RPC side channel for structured details useful for dynamic client use.  <FailedGaiaId:##########>
Stack trace:
com.google.focus.backend.server.OperationDeniedException: Reason: UNIQUE_VIOLATION; A field in the mutate request violates unique constraint. See the SchemaValidationMessage on the RPC side channel for structured details useful for dynamic client use.  <FailedGaiaId:##########>
        at com.google.focus.backend.server.AbstractHandler.checkSpannerUniqueViolation(AbstractHandler.java:1383)
        at com.google.focus.backend.server.AbstractHandler.checkKansasMutateStatusOk(AbstractHandler.java:1527)
        at com.google.focus.backend.server.MutateDataHelper$32.checkRpcStatusOk(MutateDataHelper.java:9241)
        at com.google.focus.backend.server.MutateDataHelper.onKansasUpdateComplete(MutateDataHelper.java:9479)
        at com.google.focus.backend.server.MutateDataHelper.access$5400(MutateDataHelper.java:341)
        at com.google.focus.backend.server.MutateDataHelper$30.callbackEx(MutateDataHelper.java:8915)
        at com.google.focus.backend.util.HandlerCallbackFactory$RequestHandlerCallback.execute(HandlerCallbackFactory.java:395)
        at com.google.focus.backend.util.HandlerCallbackFactory$BaseHandlerCallback.callback(HandlerCallbackFactory.java:358)
        at com.google.focus.backend.util.HandlerCallback$1.runInContext(HandlerCallback.java:145)
        at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
        at io.grpc.Context.run(Context.java:565)
        at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:166)
        at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:319)
        at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
        at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
        at com.google.common.context.ContextRunnable.runInContext(ContextRunnable.java:50)
        at com.google.common.context.ContextRunnable$1.run(ContextRunnable.java:39)
        at io.grpc.Context.run(Context.java:565)
        at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:166)
        at com.google.tracing.GenericContextCallback.runInInheritedContextNoUnref(GenericContextCallback.java:72)
        at com.google.tracing.GenericContextCallback.runInInheritedContext(GenericContextCallback.java:64)
        at com.google.common.context.ContextRunnable.run(ContextRunnable.java:36)
        at com.google.common.labs.concurrent.TimedRunnable$1.call(TimedRunnable.java:37)
        at com.google.common.labs.concurrent.TimedRunnable$1.call(TimedRunnable.java:34)
        at com.google.common.labs.concurrent.TimedCallable.call(TimedCallable.java:52)
        at com.google.common.labs.concurrent.TimedRunnable.run(TimedRunnable.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
        at com.google.focus.backend.server.MonitoredThreadFactory$MonitoredThread.run(MonitoredThreadFactory.java:89)
;AppErrorCode=13;StartTimeMs=1548155251448;ServerTimeSec=0.16378735;TCP;Deadline=9.905;CliLog=-1;SrvLog=256;FailFast;EndUserCredsRequested;ReqSecLevel=none;RespFormat=UNCOMPRESSED;/FocusBackend.MutateData;LastReqID=902e2568409590b4;LastGlobalID=0;Server=[2002:a0d:2917::]:4428

Я запускаю windows 10 и обновил свои утилиты gcloud.Люди с системами Unix, похоже, не имеют этой проблемы в нашей команде.Я попытался сгенерировать новые ключи, создать ключи в другом проекте и перенести их из проектов облачных вычислений в другие проекты, но продолжаю работать с той же ошибкой.gcloud compute os-login Список ssh-keys дает мне ноль записей.Я также повторно и т. Д.

Помощь будет принята.

-Тх за советы

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Чтобы передать ваш открытый ssh-ключ в ваш проект gcloud, вы можете выполнить следующую процедуру:

  • Создан новый ключ SSH:

ssh-keygen -t rsa -b 4096 -f ~ / .ssh / [USER] -key -C [USER]

Когда появится следующее сообщение, просто дважды нажмите клавишу [ENTER],

Введите кодовую фразу (пусто, без парольной фразы): введите тот же пароль еще раз:

  • Ограничить доступ к новому ключу SSH: chmod 600 ~ / .ssh / [USER] -key

  • Получить содержимое ~ / .ssh / [USER] -key.pub

cat ~ / .ssh / [USER] -key.pub

  • В вашем проекте добавьте открытые ключи SSH [1]:

    В консоли Google Cloud Platform перейдите на страницу экземпляров виртуальной машины.

    Нажмитеимя экземпляра, который вы хотите изменить.

    Нажмите кнопку «Редактировать» на панели инструментов.

    В разделе «Ключи SSH» нажмите «Показать и изменить».В этом разделе отображаются все открытые ключи SSH уровня экземпляра.

    Измените открытые ключи SSH уровня экземпляра:

    Чтобы добавить открытый ключ SSH, нажмите кнопку Добавить элемент.Это создаст текстовое поле.Скопируйте содержимое вашего открытого файла ключей SSH и вставьте его в текстовое поле.Повторите этот процесс для каждого открытого ключа SSH, который вы хотите добавить.

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

    Повторите этот процесс для каждого открытого ключа SSH, которыйВы хотите удалить.

    Когда вы закончите, нажмите Сохранить внизу страницы.

  • Подключение к экземпляру виртуальной машины:

ssh -i ~ / .ssh / клавиша [USER] [USER] @ [IP-АДРЕС]

[1] https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#instance-only

0 голосов
/ 23 января 2019

Вы можете следовать инструкциям на [1] и убедиться, что «os-loging» включен. Если по-прежнему происходит сбой, попробуйте с другой машины для той же учетной записи, чтобы отменить любые локальные проблемы.

[1] https://medium.com/infrastructure-adventures/centralized-ssh-login-to-google-compute-engine-instances-d00f8654f379

...