【问题标题】:How to `go get` private repos using SSH key auth with password如何使用带有密码的 SSH 密钥身份验证“去获取”私有存储库
【发布时间】:2021-12-09 09:39:21
【问题描述】:

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

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

git@github.com:权限被拒绝(公钥)。

在解决 Go 中的依赖项时,是否有任何方法提示输入此密码?

现在,我删除了密码:(

【问题讨论】:

  • 通常你会使用 ssh 代理,这不是一个选项吗?
  • @JimB 太棒了。像魅力一样工作。绝对是一种选择

标签: go ssh ssh-keys go-modules


【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-04
      • 2021-12-12
      • 2017-08-27
      • 1970-01-01
      • 2021-06-19
      • 2013-12-26
      • 1970-01-01
      • 2012-11-11
      相关资源
      最近更新 更多