我试图将托管在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键选项中键入随机字母,它仍会以相同的方式失败,而不是抛出未找到的文件。
希望它只是一个小的配置错误我已经做了,因为我不太确定它有什么问题。
答案 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"
}
}
}
}