我正在尝试使用 自动将一些本地文件从我的 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
。