macOS终端克隆Github私有仓库:密码与个人访问令牌均报403错误
解决macOS 12.5终端克隆GitHub私有仓库的403及askpass错误
问题场景
在macOS 12.5终端执行克隆命令:
git clone https://github.com/myorganization/myrepository.git
出现以下错误提示:
(gnome-ssh-askpass:17485): Gtk-WARNING **: 15:18:11.061: cannot open display: error: unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass' Username for 'https://github.com':
输入用户名回车后,再次出现类似错误:
(gnome-ssh-askpass:17492): Gtk-WARNING **: 15:18:18.607: cannot open display: error: unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass' Password for 'https://myusername@github.com':
输入GitHub账户密码或个人访问令牌后,返回403错误:
fatal: unable to access 'https://github.com/myorganization/myrepository.git/': The requested URL returned error: 403
(注:输入密码时终端无显示为安全机制,非异常)
解决步骤
1. 移除SSH_ASKPASS环境变量
macOS默认不使用gnome-ssh-askpass,该环境变量会导致终端尝试调用图形化密码弹窗失败。执行以下命令取消该变量:
unset SSH_ASKPASS
之后重新执行克隆命令,即可在终端正常输入凭证。
2. 使用个人访问令牌(PAT)替代密码
GitHub已不再支持账户密码直接通过HTTPS访问仓库,必须使用个人访问令牌(PAT):
- 生成PAT时需勾选
repo权限(针对私有仓库),若为组织仓库,确保组织未限制PAT的使用权限。 - 可直接在克隆命令中嵌入凭证(避免交互输入):
git clone https://<你的GitHub用户名>:<你的PAT令牌>@github.com/myorganization/myrepository.git
3. 配置Git凭证存储(持久化保存)
为避免每次操作都输入凭证,可配置Git使用macOS钥匙串存储凭证:
git config --global credential.helper osxkeychain
配置后再次执行克隆命令,输入用户名和PAT,Git会自动将凭证保存到系统钥匙串,后续操作无需重复输入。
4. 排查403错误的其他可能
- 检查PAT是否过期,或权限是否覆盖目标仓库的读取权限。
- 确认你的GitHub账户已被组织管理员添加到该私有仓库的权限列表中。
- 若使用VPN/代理,检查代理设置是否干扰了GitHub的HTTPS访问,可尝试暂时关闭代理后重试。
内容的提问来源于stack exchange,提问作者coder girl
相关产品推荐
相关产品推荐

