如何使用带密码的 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>
我通常在我的 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>