如何使用带有密码的 SSH 密钥身份验证“去获取”私有存储库
Posted
技术标签:
【中文标题】如何使用带有密码的 SSH 密钥身份验证“去获取”私有存储库【英文标题】:How to `go get` private repos using SSH key auth with password 【发布时间】:2021-12-09 09:39:21 【问题描述】:我通常在我的 ssh 密钥中设置一个密码,这样万一它被泄露,我可能有一些时间来轮换到一个新的。
但是,在使用 go 模块时,我注意到在执行 go get
并使用带密码的密钥时,我收到以下错误
git@github.com:权限被拒绝(公钥)。
在解决 Go 中的依赖项时,是否有任何方法提示输入此密码?
现在,我删除了密码:(
【问题讨论】:
通常你会使用 ssh 代理,这不是一个选项吗? @JimB 太棒了。像魅力一样工作。绝对是一种选择 【参考方案1】:使用代理。在 Linux 或 Macos 上,该过程是
ssh-agent bash
这第一步使用 ssh-agent 启动一个 shell
ssh-add ~/.ssh/id_rsa
第二步给代理添加key,~/.ssh/id_rsa是key的路径。在这一步之后,它会询问一次密码
完成这些操作后,新 shell 中的任何命令都将使用通过 ssh-add 加载的密钥
【讨论】:
【参考方案2】:您也可以尝试通过禁用批处理模式来更改 go get 调用 ssh 的方式:
env GIT_SSH_COMMAND="ssh -o ControlMaster=no -o BatchMode=no" go get github.com/<YOUR_REPO_HERE>
【讨论】:
以上是关于如何使用带有密码的 SSH 密钥身份验证“去获取”私有存储库的主要内容,如果未能解决你的问题,请参考以下文章
使用密码短语(如 SSH 密钥)存储 Github / Gitea 身份验证令牌
带有 openssh 密钥的 TortoiseGit 未使用 ssh-agent 进行身份验证