Я пытаюсь автоматизировать копирование некоторых локальных файлов с моего Mac (Mojave) в экземпляр GCP, используя gcloud compute scp
.
Работает нормально, но постоянно запрашивает пароль для созданного ~/.ssh/google_compute_engine
ключа gcloud
.
Можно ли как-то избавиться от этого, чтобы автоматизировать процесс?
решение1
пытаться --quiet
:
Отздесь:
--quiet
,-q
Отключить все интерактивные подсказки при запуске команд gcloud. Если требуется ввод, будут использованы значения по умолчанию или возникнет ошибка. Переопределяет значение свойства core/disable_prompts по умолчанию для вызова этой команды. Необходимо использовать в начале команд. Это эквивалентно установке переменной среды
CLOUDSDK_CORE_DISABLE_PROMPTS
в 1.
решение2
Не уверен, что сможешь.автоматизироватьввод парольной фразы, но вы, конечно, можете удалить парольную фразу, чтобы он просто использовал ваши открытый и закрытый ключи, хранящиеся на вашем локальном компьютере, и не запрашивал парольную фразукроме тогок использованию ключей
Чтобы сделать это, см.этотответ. Суть в следующем:
- Удалить существующие ключи из
~/.ssh
- Попробуйте переподключиться по ssh. Он пересоздаст ключи, так как не найдет их, и спросит, нужна ли вам фраза-пароль. Не создавайте фразу-пароль.
решение3
Я заставил это работать, перенаправив стандартный ввод с /dev/null
:
gcloud compute scp delete.me myInstance:~/ < /dev/null
решение4
Добавьте ключ ssh к вашему агенту ssh с помощью
ssh-add ~/.ssh/google_compute_engine
ssh-agent
Подробную информацию смотрите на страницах руководства ssh-add
.