Рейтинг:0

gcloud вычислить ssh избежать необходимости 2FA каждый раз?

флаг ng

я использую gcloud вычисляет ssh для SSH в моем экземпляре, например:

$ gcloud вычислить ssh shell-сервер --project=XXXXXXXXXXXXXXXX
Зона не указана. Использование зоны [us-central1-f], например: [shell-server].
Внешний IP-адрес не найден; по умолчанию используется туннелирование IAP.
Пожалуйста, выберите один из доступных методов аутентификации:
1: Код безопасности из приложения Google Authenticator
2: Голосовой или текстовый код подтверждения

Введите номер используемого метода аутентификации: 1
Введите одноразовый пароль: XXXXXX
имя пользователя@shell-сервер ~ $

К сожалению, мне приходится 2FA каждый раз. Мне нравится 2FA, но, может быть, есть способ настроить все так, чтобы мне приходилось предоставлять его только каждые несколько часов?

Обновлять: я побежал gcloud вычислить ssh --dry-run, который точно говорит вам, какая команда запущена:

/usr/bin/ssh \
    -т \
    -i /Users/kannan/.ssh/google_compute_engine \
    -o CheckHostIP=нет \
    -o HostKeyAlias=compute.123123123123123123 \
    -o IdentitiesOnly=yes \
    -o StrictHostKeyChecking=нет \
    -o UserKnownHostsFile=/Users/kannan/.ssh/google_compute_known_hosts \
    -o ProxyCommand='/usr/local/bin/python3 -S /Users/kannan/Software/google-cloud-sdk/lib/gcloud.py вычислить start-iap-tunnel shell-server %p --listen-on- стандартный ввод --project=XXXXXXXXX --zone=us-central1-f --verbosity=предупреждение' \
    -o ProxyUseFdpass=нет \
    [email protected]

Обновление 2: я мог бы оставить Gcloud вычислить start-iap-туннель работать в фоновом режиме и настроить мой SSH для использования этого туннеля, но я надеюсь на что-то более автоматическое, похожее на удобство SSH ControlMaster=авто.

John Hanley avatar
флаг cn
Какой сервис предоставляет MFA/2FA/двухэтапную проверку?
флаг ng
@JohnHanley: Хороший вопрос. Я думаю, что это функция GCP «IAP Tunnel», которая запрашивает 2FA. Я обновил свой вопрос с более подробной информацией.
флаг ng
@JohnHanley: На самом деле я ошибался. На самом деле это сам целевой экземпляр («сервер-оболочка»), который запрашивает 2FA.
Рейтинг:1
флаг ng

Я понял. Поместите это в ~/.ssh/config:

Хост-шелл-сервер
    Пользователь kannan_example_org
    IdentityFile ~/.ssh/google_compute_engine
    UserKnownHostsFile ~/.ssh/google_compute_known_hosts
    CheckHostIP нет
    StrictHostKeyChecking нет
    ProxyCommand gcloud вычислить start-iap-tunnel %n %p --project="..." --zone="..." --listen-on-stdin --verbosity=warning
    ProxyUseFdpass нет
    Авто ControlMaster
    ControlPersist 30м
  • Авто ControlMaster: На каждом ssh/SCP вызов, сначала проверьте, есть ли существующее соединение с оболочка-сервер. Если это так, просто поделитесь этим подключением, чтобы не было повторной аутентификации и, следовательно, повторной двухфакторной аутентификации.
  • ControlPersist 30м сообщает SSH, что даже после всего ssh/SCP вызовы выполнены, держите совместно используемое соединение открытым в течение 30 минут.

Теперь я могу просто использовать простой ssh и SCP команды с именем хоста оболочка-сервер.

Примечание. На самом деле я установил Проксикоманда в пользовательский скрипт-оболочку, который автоматически определяет --проект=... и --зона=... от имени хоста.

Рейтинг:0
флаг de

Двухфакторная аутентификация является частью службы входа в ОС. Не могли бы вы проверить с помощью приведенной ниже команды, установлен ли флаг для проекта?

информация о проекте вычислений gcloud описать | grep ОС

Если он включен, вы можете отключить его для всего проекта или во время создания виртуальной машины.

Подробнее здесь:

https://cloud.google.com/compute/docs/instances/managing-instance-access#enable_oslogin

Надеюсь, это поможет.

флаг ng
О, извините, чтобы было ясно, я не хочу отключать 2FA. Я просто не хочу вводить его при каждом новом вызове `ssh` (или `scp`). Например, возможно, он мог запрашивать 2FA только каждые 24 часа.
флаг de
На мой взгляд, это невозможно сделать в службе входа в ОС. В командной строке нет переключателя для установки тайм-аута.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.