Composer在macOS因keychain权限拒绝导致Git认证失败,需检查钥匙串凭据权限、配置git credential.helper为osxkeychain、避免Composer回退HTTPS,并重置Git凭据触发重新授权。

Composer 在 macOS 上因 keychain 权限拒绝访问凭据,会导致 git clone 或私有包安装时认证失败(如 401 Unauthorized 或 Permission denied (publickey)),根本原因是 Git 尝试从系统 keychain 读取凭证时被 macOS 安全策略拦截。
macOS 的钥匙串可能存有损坏、过期或权限受限的 Git 凭据(如 github.com、gitlab.com 等)。打开“钥匙串访问”应用,搜索 github.com 或对应 Git 域名,找到类型为 Internet password 的条目。双击打开,点击“访问控制”,确认“允许所有应用程序访问此项目”已勾选;若未勾选,勾选后点击“好”保存。也可直接删除旧条目,让 Git 下次自动重新存储(需配合正确的凭据配置)。
运行以下命令确认 Git 已启用 keychain 辅助:
git config --global credential.helper
应输出 osxkeychain。若为空或错误,执行:
git config --global credential.helper osxkeychaingit config --global credential.helper /opt/homebrew/bin/git-credential-osxkeychain(路径以 which git-credential-osxkeychain 输出为准)Composer 默认在 SSH 失败时自动回退到 HTTPS,而 HTTPS 依赖 keychain 存储的用户名/密码。若你本意是走 SSH(如私有 GitLab 仓库),却因 keychain 拒绝导致 HTTPS 认证失败,可强制 Composer 仅用 SSH:
composer.json 中为仓库指定 "type": "vcs" 并确保 URL 是 git@... 格式(非 https://...)composer config --global github-oauth.github.com <your_token></your_token>(仅适用于 GitHub)或改用 SSH 密钥认证export COMPOSER_DISABLE_HTTPS=1(不推荐长期使用)清除当前缓存的凭据,让 Git 重新弹出授权窗口(注意:需确保钥匙串权限已按第一点设好):
git credential reject,然后输入:protocol=httpshost=github.comusername=(留空后回车)git ls-remote git@github.com:vendor/package.git),macOS 会再次提示授权基本上就这些。关键是钥匙串权限放开 + Git 辅助工具配置正确 + Composer 不意外降级到 HTTPS。不复杂但容易忽略权限细节。
以上就是如何解决 Composer 在 macOS 上因 keychain 权限导致的认证失败?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号