2015-05-29 1 views
1

Я вытаскиваю свои волосы, пытаясь заставить Berkshelf скачать поваренную книгу компании из нашего частного репозитория BitBucket (git). Это на хосте Windows 8.1.Berkshelf продает кулинарные книги на частном репозитории Bitbucket

Я нашел this question и попытался выполнить описанное в ответе. Я также играл с инструкциями, которые Atlassian советует о here и особенно на их странице около ssh for multiple identities.

  • Я создал открытый ключ с puttygen и добавил его в качестве ключа развертывания в репозиторий Bitbucket.
  • Я сохранил закрытый ключ в C:\Users\MyUser\.ssh\mykey.ppk.
  • Я добавил C:\Users\MyUser\.ssh\config со следующим содержанием:

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

  • я пытаюсь включить поваренную книгу в berksfile вроде этого:

    cookbook 'mycookbook', git: "[email protected]:myteam/mycookbook.git", protocol: :ssh

Когда я бегу $ berks install -d I получить:

Fetching 'mycookbook' from [email protected]:myteam/mycookbook.git (at master) 
Enter passphrase for key '/c/Users/MyUser/.ssh/mykey.ppk': 
Git error: command `git clone [email protected]: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, которую я просто подтверждаю с помощью `enter ', когда я оставил ее пустой. Но разве он не должен просто читать его, не заставляя этого?

ответ

1

Вот несколько предложений:

  • Убедитесь, что переменная окружения HOME устанавливается в C:\Users\MyUser, когда вы запускаете команду berks.
  • Используйте полный путь для закрытого ключа

    Host mycompany 
    HostName bitbucket.org 
    IdentityFile /C/User/MyUser/.ssh/mykey.ppk 
    
  • попытаться использовать RSA ключи вместо закрытых ключей шпатлевка (ППК)

    ssh-keygen -t rsa 
    

(ссылка частный ключ в IdentityFile: id_rsa один, добавить общественный к ретрансляции BitBucket)

подтверждает in the comments:

Оказался, последней точкой неподвижной - я использовал пользовательский интерфейс PuTTYgen для экспорта ключа Conversions -> Export OpenSSH key как mykey.pub, а затем просто изменил конфиг для IdentityFile ~/.ssh/mykey.pub.
Он работал с относительным путем.

+0

Genius! Оказалось, что последнее исправлено - я использовал пользовательский интерфейс puttygen для экспорта ключа 'Конверсии -> Экспорт ключа OpenSSH' как' mykey.pub', а затем просто изменил конфигурацию на 'IdentityFile ~/.ssh/mykey.ppk' , Он работал с относительным путем. Большое спасибо, вы спасли мой день :) – phpPhil

+0

@phpPhil Отлично! Я включил ваше заключение в ответ для большей наглядности. – VonC

+0

Спасибо за это. Небольшая коррекция, поскольку я не могу редактировать свой комментарий ... он должен читать 'IdentityFile ~/.ssh/mykey.pub'. ** pub ** вместо ppk. – phpPhil