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 我如何添加新的存储库

无法克隆私有存储库 github:身份验证失败

无法推送到我的 github 私有存储库