You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用带口令的SSH密钥认证执行go get拉取私有代码仓库

解决方案

你可以通过以下几种方案解决该问题,无需删除SSH密钥的口令:

方案1:使用ssh-agent缓存密钥口令(最推荐)

ssh-agent可以在当前会话中保存你的密钥口令,避免重复输入,操作步骤如下:

  • 启动当前终端会话的ssh-agent服务:
    eval "$(ssh-agent -s)"
  • 把你的SSH私钥添加到ssh-agent中,默认私钥路径为~/.ssh/id_rsa,如果你用的是自定义路径替换即可:
    ssh-add ~/.ssh/id_rsa
  • 执行添加命令后会提示你输入密钥的口令,验证通过后,当前终端会话内所有调用SSH的操作(包括go get调用git拉取依赖)都不需要再输入口令。
  • MacOS用户可以执行ssh-add -K ~/.ssh/id_rsa将口令缓存到系统钥匙串,重启设备后也无需重新输入。
  • 如果你希望每次打开终端都自动生效,可以把上述两条命令添加到~/.bashrc、~/.zshrc等终端配置文件中。

方案2:配置Git强制走SSH协议+开启口令提示

大部分场景下go get报错是因为默认走HTTPS协议拉取代码,不会调用本地SSH密钥,你可以配置Git的路径替换规则强制走SSH:

  • 执行全局Git配置命令,以GitHub为例:
    git config --global url."git@github.com:".insteadOf "https://github.com/"
    如果你用的是其他私有Git平台,替换对应域名即可。
  • 配置环境变量让SSH强制在终端弹出口令输入提示:
    export GIT_SSH_COMMAND="ssh -o BatchMode=no"

配置完成后可以先手动执行git clone git@github.com:任意公开仓库地址验证,能正常拉取或提示输入口令就说明配置生效,再执行go get就不会出现权限报错。

内容的提问来源于stack exchange,提问作者Victor Hugo Montes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:27:00