使用带有composer的ssh密钥用于私有vcs

时间:2017-10-25 14:12:19

标签: git composer-php

我试图将托管在bitbucket上的私有包拉到我的项目中,但我似乎无法让作曲家与我的ssh密钥一起正常工作。我正在尝试:

        {
            "type": "composer",
            "url": "https://packagist.org"
        },
        {
            "type": "vcs",
            "url": "git@bitbucket.org:{projectName}/{repo}.git",
            "ssh2": {
                "username": "git",
                "privkey_file": "/home/vagrant/.ssh/bitbucket_id_rsa",
                "pubkey_file": "/home/vagrant/.ssh/bitbucket_id_rsa.pub"
            }
        },

当我尝试运行composer update时,我得到Permission denied (publickey)但是当我运行ssh -T git@bitbucket.org -i /home/vagrant/.ssh/bitbucket_id_rsa时,我可以成功连接。

我不确定它是否尝试使用指定的密钥,因为如果我在priv和pub键选项中键入随机字母,它仍会以相同的方式失败,而不是抛出未找到的文件。

希望它只是一个小的配置错误我已经做了,因为我不太确定它有什么问题。

1 个答案:

答案 0 :(得分:1)

您正在使用他们不属于的ssh2个选项。该密钥属于options密钥。 E.g:

{
  "repositories": [{
    "type": "composer",
    "url": "ssh2.sftp://example.org",
    "options": {
      "ssh2": {
        "username": "composer",
        "pubkey_file": "/home/composer/.ssh/id_rsa.pub",
        "privkey_file": "/home/composer/.ssh/id_rsa"
      }
    }
  }]
}

位于它们所在的地方,并不是一个惊喜,作曲家只是忽略了这些设置。

尽管如此,我还不确定这是否会使用bitbucket进行身份验证。如果你有一个私人bitbucket repo,你应该使用the bitbucket driver

{
    "config": {
        "bitbucket-oauth": {
            "bitbucket.org": {
                "consumer-key": "myKey", 
                "consumer-secret": "mySecret"
            }
        }

    }
}