如何使用带密码的 SSH 密钥身份验证“获取”私有存储库

How to `go get` private repos using SSH key auth with password

我通常在我的 ssh 密钥中设置一个密码,这样,万一它被泄露,我可能有时间轮换到一个新的。

但是,在使用 go modules 时,我注意到在执行 go get 并使用带密码的密钥时,出现以下错误

git@github.com: Permission denied (publickey).

在解决 Go 中的依赖项时,有什么方法可以提示输入此密码吗?

现在,我删除了密码:(

使用代理。在 Linux 或 MacOS 上,过程是

   ssh-agent bash

第一步使用 ssh-agent

启动 shell
   ssh-add ~/.ssh/id_rsa

第二步给agent添加一个key,~/.ssh/id_rsa是key的路径。在此步骤之后,它将询问一次密码

完成这些操作后,新 shell 中的任何命令都将使用通过 ssh-add

加载的密钥

您也可以尝试通过禁用批处理模式来更改 go get 调用 ssh 的方式:

env GIT_SSH_COMMAND="ssh -o ControlMaster=no -o BatchMode=no" go get github.com/<YOUR_REPO_HERE>