Composer Github 私有存储库无法使用给定的密钥
Posted
技术标签:
【中文标题】Composer Github 私有存储库无法使用给定的密钥【英文标题】:Composer Github private repository not working with given key 【发布时间】:2014-08-20 04:16:40 【问题描述】:我试图从通过composer
安装的 Github 获取私有存储库。我的composer
配置如下:
"repositories": [
"type": "vcs",
"url": "git@github.com:user/repo.git",
"options":
"ssh2":
"user": "ranacseruet"
"privkey_file": "./keys/id_rsa",
"pubkey_file": "./keys/id_rsa.pub"
]
但是,它不适用于此配置。它仍然要求 github 用户/通行证。但是,如果我的系统的 github 授权使用密钥正确设置,那么它只会自动运行。
无论如何,作曲家配置都不起作用。是否有其他人面临同样的问题,或者我做错了什么/需要在这里检查?提前致谢。
【问题讨论】:
您能否尝试保留 privkey_file 和 pubkey_file 的完整路径 你好,哈里,是的,我也试过了。但同样的结果。我不确定,但我的 ssh2 安装可能存在一些问题。我会检查的。 另一篇文章或许能帮到你seld.be/notes/authentication-management-in-composer 我有类似的问题:对我来说,命令行中的git
与远程仓库完美配合(我在.ssh/id_rsa
中有密钥),但是当我尝试在composer.json
中指定仓库时(没有显式密钥)它仍然要求输入密码。
您似乎为公钥和私钥指定了相同的文件。其中一个是否有可能具有不同的文件名?在我的情况下,这些键位于两个单独的文件中。
【参考方案1】:
我不确定您的问题是什么,但您可以使用 ssh config file 以另一种方式解决。
这允许您配置 SSH 连接以使用“虚拟”主机的特定凭据,从而允许您更改连接到 Git 存储库的方式,因此可用于修改使用 ssh 的 Composer 依赖项。
编辑 ~/.ssh/config 例如
Host ranacseruet_github.com
User git
HostName github.com
IdentityFile [path-to]/keys/id_rsa
然后修改您的 composer.json 以使用假主机并删除 ssh 选项:
"repositories": [
"type": "vcs",
"url": "git@ranacseruet_github.com:user/repo.git",
]
因此,当 ssh 尝试连接到“虚拟”主机 ranacseruet_github.com 时,它将使用指定的凭据。
我使用这种技术来定义需要特定凭据的 git 遥控器。它应该通过 composer 工作,因为它是 ssh 级别的更通用的解决方案。
【讨论】:
【参考方案2】:在我的例子中,我需要添加 ssh://
前缀,而不是像 git@github.com:user/repo.git
这样只传递一个普通的 repo URL。所以它最终看起来像这样:ssh://git@github.com:user/repo.git
。然后就成功了。
我不需要为私钥提供路径。这是从.ssh
文件夹中抓取的。
"repositories": [
"type": "vcs",
"url": "ssh://git@github.com:user/repo.git",
]
【讨论】:
【参考方案3】:除了 kkochanski 的 answer(对不起,我没有足够的声誉来评论他的回答):
他的解决方案对我不起作用。我不得不使用斜杠而不是冒号:
"repositories": [
"type": "vcs",
"url": "ssh://git@github.com/[user]/[repo].git"
],
【讨论】:
以上是关于Composer Github 私有存储库无法使用给定的密钥的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk 使用 PHP 和私有 Composer 存储库
通过 Composer 从私有 Bitbucket 存储库导入包
ubuntu:如何使用 sudo 使用 composer 安装私有存储库
我的 composer.json 的一个存储库现在是空的或私有的 我仍然想使用这个 composer.json 我如何添加新的存储库