0

0

如何在没有SSH权限的主机上使用Composer?(HTTP/HTTPS Git克隆)

裘德小鎮的故事

裘德小鎮的故事

发布时间:2025-12-17 16:59:44

|

150人浏览过

|

来源于php中文网

原创

在无 SSH 权限主机上使用 Composer 的核心是强制通过 HTTPS 拉取依赖:配置 github-protocols 或 git url.insteadOf 重写 SSH 为 HTTPS,确保 composer.json 中仓库 URL 为 HTTPS,优先使用 --prefer-dist 安装 dist 包。

如何在没有ssh权限的主机上使用composer?(http/https git克隆)

在没有 SSH 权限的主机上使用 Composer,核心思路是让 Composer 完全通过 HTTPS(或 HTTP)协议拉取依赖,避免触发 Git 的 SSH 协议(如 git@github.com:user/repo.git)。这通常涉及重写 Git URL、配置 Composer 行为、以及确保目标仓库支持 HTTPS 克隆。

强制 Composer 使用 HTTPS 替代 SSH

Composer 默认会按 composer.json 中声明的 VCS URL(如 GitHub 的 SSH 地址)执行克隆。若你无法使用 SSH,需统一将其映射为 HTTPS 地址:

  • 在项目根目录运行:
    composer config --global github-protocols https
    该命令告诉 Composer 优先用 HTTPS 访问 GitHub(适用于 GitHub 托管的包)。
  • 更通用的做法是配置 Git 本身(如果主机有 Git 且可配置):
    git config --global url."https://github.com/".insteadOf "git@github.com:"
    这样所有形如 git@github.com:user/repo 的地址都会被自动转成 https://github.com/user/repo
  • 对其他平台(如 GitLab、Bitbucket),同样可用 git config --global url."https://gitlab.com/".insteadOf "git@gitlab.com:" 类推。

修改 composer.json 中的仓库定义

如果你在 composer.json 中手动添加了 repositories(比如私有包),务必使用 HTTPS URL:

  • ✅ 正确(HTTPS):
    "url": "https://gitlab.example.com/mygroup/mypackage.git"
  • ❌ 错误(SSH,会失败):
    "url": "git@gitlab.example.com:mygroup/mypackage.git"
  • 若必须用私有 Git 仓库,确保它已启用 HTTPS 克隆(含有效证书),并可通过浏览器curl -I https://... 验证可访问。

跳过 SSH 密钥验证与 Git 子模块(如需)

某些包可能含 Git 子模块,或 Composer 在安装时调用 git clone 命令——若底层仍走 SSH,会卡住。可临时禁用 SSH 检查(仅限可信环境):

通义视频
通义视频

通义万相AI视频生成工具

下载
  • 设置 Git 环境变量(运行 Composer 前):
    export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
    ⚠️ 注意:这降低安全性,生产环境不推荐;仅用于调试或内网可信场景。
  • 更稳妥的方式是确保所有子模块 URL 本身也是 HTTPS,并在仓库中用 .gitmodules 显式声明 HTTPS 地址。

使用 dist 包而非 source(推荐)

Composer 默认优先尝试从源码(source)安装(即 Git 克隆),但若包在 Packagist 上已发布,它也会回退到预编译的 dist ZIP 包(通过 HTTPS 下载):

  • 运行:
    composer install --prefer-dist
    强制只下载 ZIP 包,完全绕过 Git。
  • 检查 composer.json 是否含 "prefer-stable": true 和未锁定 dev 分支——稳定版更大概率提供 dist。
  • 若某包始终走 source,可在 composer.json 中显式指定:
    "myvendor/mypackage": "^1.0"(不带 @dev#branch 后缀)。

基本上就这些。关键不是“不用 Git”,而是让 Git 走 HTTPS,或让 Composer 直接跳过 Git。操作不复杂但容易忽略全局 Git URL 重写和 --prefer-dist 这两个点。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

150

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

418

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

235

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

437

2024.03.01

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

439

2023.06.14

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

14

2026.01.26

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.5万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

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

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