Composer config命令配置 SSH 密钥实现免密访问内网包服务器

云静大大_4366

云静大大_4366

2026-06-23

451人浏览

原创

composer config 命令无法配置 ssh 密钥,它仅管理自身配置项(如 github-oauth、http-basic),ssh 密钥由 git 和系统 ssh 工具链管理;真正需配置的是 git 的 url..insteadof 规则、~/.ssh/config、密钥权限及 known_hosts。

composer config命令配置 ssh 密钥实现免密访问内网包服务器

Composer config 命令根本不能配置 SSH 密钥

别被“config”这个词误导——composer config 无法设置 SSH 密钥,它只管 Composer 自己的配置项(比如 github-oauth、http-basic、cache-dir),不碰 Git 或 SSH 层。SSH 密钥是 Git 和系统 SSH 工具链的事,Composer 完全不读取、不管理、不转发私钥。

你执行 composer config --global github-oauth.github.com xxx 是给 GitHub API 用的;而 composer config --global http-basic.repo.example.com user pass 是给 HTTPS 私库用的。这两者和 SSH 密钥毫无关系。

如果看到网上有人写 composer config --global ssh-key ~/.ssh/id_rsa,那是错的——这个命令会报错或静默忽略,因为 ssh-key 不是 Composer 支持的配置项。

真正要改的是 Git 的全局 URL 重写规则

内网包服务器(比如 git.internal)通常没开放 HTTPS 访问,或者强制走 SSH。但团队里很多人习惯写 https://git.internal/org/pkg.git,结果 Composer 就去走 HTTPS,失败后又 fallback 到密码输入,卡住。

正确做法是让 Git 自动把 HTTPS 请求转成 SSH,靠的是 git config --global url.<ssh-url-prefix>.insteadOf <https-url-prefix></https-url-prefix></ssh-url-prefix>:

  • git config --global url."git@git.internal:".insteadOf "https://git.internal/"
  • git config --global url."git@git.internal:".insteadOf "http://git.internal/"

注意:insteadOf 后面必须带协议 + 尾部斜杠,否则不匹配;前面的 SSH 前缀末尾要有冒号(git@git.internal:),这是 Git 识别替换的关键。

Discussion Composer
Discussion Composer

围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par

下载

验证是否生效:运行 git ls-remote https://git.internal/org/pkg.git,如果输出远程 ref 列表,说明已自动转成 git@git.internal:org/pkg.git 并走 SSH 成功。

内网环境最常漏掉的三件事

本地能跑 ≠ 内网服务器/CI 能跑。以下三点在部署机或 Jenkins/GitLab Runner 上几乎必踩:

  • ssh-agent 没启动:PHP 进程(如 www-data 用户)默认没 ssh-agent,得手动 eval "$(ssh-agent -s)" 再 ssh-add /path/to/private-key
  • 私钥权限不是 600:chmod 600 /var/www/.ssh/id_rsa_internal 必须做,否则 ssh-add 静默拒绝加载
  • known_hosts 缺失目标主机指纹:内网服务器首次连接会被 SSH 拒绝,得提前运行 ssh-keyscan git.internal >> /var/www/.ssh/known_hosts

尤其注意:Web 服务器用户(如 www-data)的 ~/.ssh 目录和密钥文件,必须由该用户所有,且不能被组或其他人读写。

composer.json 里写错一个字符就失效

即使 SSH 全链路通了,composer.json 里仓库配置错一个地方,Composer 就直接忽略整个源:

  • "type" 必须是 "vcs",写成 "git" 或留空都不行
  • "url" 必须是完整 SSH 格式:"git@git.internal:group/pkg.git" —— 冒号分隔、以 .git 结尾、不能有 https:// 或用户名密码
  • require 中的包名(如 "group/pkg")必须和私有库根目录下 composer.json 的 "name" 字段**逐字符一致**(大小写敏感)
  • 版本建议显式写 "dev-main" 或 "1.0.x-dev",避免 Composer 因找不到稳定版而跳过

最后提醒一句:别信“改完 config 就好使”这种说法。所有问题都发生在 Git 层,验证永远从 ssh -T git@git.internal 和 git clone git@git.internal:group/pkg.git 开始——这两条命令不静默成功,后面全是白忙。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

composer

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2832

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

956

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

849

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

434

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2576

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4772

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

767

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习