Berkshelf在私人Bitbucket存储库上销售食谱

时间:2015-05-29 01:52:28

标签: git ssh vagrant bitbucket berkshelf

我试着让Berkshelf从我们的私人BitBucket(git)存储库下载公司的食谱。这是在Windows 8.1主机上。

我找到this question并尝试了答案中描述的内容。我也玩过Atlassian关于here的建议,尤其是关于ssh for multiple identities的页面。

  • 我使用puttygen生成了一个公钥,并将其作为部署密钥添加到Bitbucket repo中。
  • 我将私钥保存在C:\Users\MyUser\.ssh\mykey.ppk
  • 我添加了C:\Users\MyUser\.ssh\config以下内容:

    Host mycompany HostName bitbucket.org IdentityFile ~/.ssh/mykey.ppk

  • 我尝试将这本食谱包含在berksfile中,如下所示:

    cookbook 'mycookbook', git: "git@mycompany:myteam/mycookbook.git", protocol: :ssh

当我运行$ berks install -d时,我得到:

Fetching 'mycookbook' from git@mycompany:myteam/mycookbook.git (at master)
Enter passphrase for key '/c/Users/MyUser/.ssh/mykey.ppk':
Git error: command `git clone git@mycompany:myteam/mycookbook.git "C:/Users/MyUser/.berkshelf/.cache/git/6d5b957656d1bda26bf05aea558176c86db263f2" --bare --no
-hardlinks` failed. If this error persists, try removing the cache directory at 'C:/Users/MyUser/.berkshelf/.cache/git/6d5b957656d1bda26bf05aea558176c86db263f2'.Output from the command:

Cloning into bare repository 'C:/Users/MyUser/.berkshelf/.cache/git/6d5b957656d1bda26bf05aea558176c86db263f2'...
Permission denied (publickey).
fatal: Could not read from remote repository.

知道为什么这不起作用吗?

我是否必须更换' git'在@用我的用户名?

前面

另外 - 请注意,它要求我输入ppk的密码,我只是通过“输入”来确认。因为我把它留空了。但不应该在没有提示的情况下阅读它吗?

1 个答案:

答案 0 :(得分:1)

以下是一些建议:

  • 运行HOME命令时,请确保环境变量C:\Users\MyUser设置为berks
  • 使用私钥的完整路径

    Host mycompany
    HostName bitbucket.org
    IdentityFile /C/User/MyUser/.ssh/mykey.ppk
    
  • 尝试使用rsa键而不是私人腻子键(ppk)

    ssh-keygen -t rsa
    

(引用IdentityFile中的私有键:id_rsa,将公共一个添加到BitBucket回购中

OP phpphil确认in the comments

  

结束了最后一点修复它 - 我使用puttygen用户界面将密钥 Conversions -> Export OpenSSH key 导出为mykey.pub,然后只需将配置更改为{{1} }。
  它也适用于相对路径。

相关问题