我试着让Berkshelf从我们的私人BitBucket(git)存储库下载公司的食谱。这是在Windows 8.1主机上。
我找到this question并尝试了答案中描述的内容。我也玩过Atlassian关于here的建议,尤其是关于ssh for multiple identities的页面。
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的密码,我只是通过“输入”来确认。因为我把它留空了。但不应该在没有提示的情况下阅读它吗?
答案 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回购中
结束了最后一点修复它 - 我使用puttygen用户界面将密钥
Conversions -> Export OpenSSH key
导出为mykey.pub
,然后只需将配置更改为{{1} }。
它也适用于相对路径。