0

0

如何解决Composer在macOS下因keychain导致的认证问题? (凭证存储)

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-01-11 12:12:08

|

572人浏览过

|

来源于php中文网

原创

Composer 卡在 keychain 认证上是因为 macOS Keychain 中存有过期、错误或权限受限的 Git 凭据,导致 git 静默失败;需运行 git credential-osxkeychain erase 清理对应 host/protocol 的凭据,并用 PAT 替代密码,同时确保 keychain 条目设为“允许所有应用访问”。

如何解决composer在macos下因keychain导致的认证问题? (凭证存储)

为什么 Composer 会卡在 keychain 认证上?

Composer 在 macOS 上执行 composer installcomposer update 时,若遇到私有 Git 仓库(如 GitHub/GitLab),会尝试用 HTTPS 克隆。此时系统默认调用 git,而 git 又依赖 macOS Keychain 存储凭证——一旦 keychain 中存了过期、错误或权限受限的凭据,git 就会静默失败,Composer 则表现为卡住、无响应或报错 Could not fetch https://.../info/refs?service=git-upload-pack

如何清空并重置 Git 的 keychain 凭据?

别改 Composer 配置绕开认证,先清理源头。macOS 的 keychain 权限策略很严格,旧凭据常被标记为“仅限 git 访问”,但实际已失效。

  • 运行 git credential-osxkeychain erase,然后输入:
host=github.com
protocol=https
  • 对其他域名重复操作,比如 host=gitlab.comhost=your-private-git.example.com
  • 验证是否清空:执行 git credential-osxkeychain find 并输入相同 host/protocol,应无输出
  • 之后首次 git clone https://github.com/xxx/yyy.git 会弹窗要求重新输入账号密码(或 token)——务必勾选 “Remember this password in my keychain”

为什么推荐用 Personal Access Token 而非密码?

GitHub 已停用账户密码登录 Git,GitLab 等也逐步弃用。用密码会直接失败;用 PAT(Personal Access Token)才能通过 keychain 正确存储和复用。

Seele AI
Seele AI

3D虚拟游戏生成平台

下载
  • 生成 PAT 时至少勾选 repo(私有库)和 read:packages(若用 GitHub Packages)
  • 在 keychain 弹窗中,把 PAT 粘贴进“Password”栏,用户名填你的 GitHub 账号(不是邮箱)
  • 如果仍失败,检查 keychain 条目是否被标记为“Access Control” → “Allow all applications to access this item”(否则 Composer 启动的 git 子进程可能被拒绝读取)

Composer 自身是否需要额外配置?

通常不需要。Composer 本身不直连 keychain,它调用 git 命令,所以只要 git 能正常拉取,Composer 就没问题。但有两个边界情况要注意:

  • 如果你在 CI 环境(如 GitHub Actions)中遇到类似问题,不要依赖 keychain —— 改用 git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
  • 本地开发中若长期只用 SSH,可全局禁用 HTTPS:运行 git config --global url."git@github.com:".insteadOf "https://github.com/",这样 Composer 就根本不会触发 keychain

真正容易被忽略的是 keychain 条目的访问控制权限 —— 它不像 Linux 的 ~/.git-credentials 那样明文可查,出问题时很难联想到是 GUI 权限策略在作祟。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

148

2023.12.25

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6076

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

797

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1056

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1202

2024.03.01

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

637

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

526

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

264

2023.07.24

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

78

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号