Я использую Capistrano (v3.5.0) для развертывания небольшого приложения Rails с моей локальной машины разработки на VPS, размещенном на Linode, с помощью ключа развертывания, установленного на Bitbucket. Уже на прошлой неделе он работал как шарм.Почему вдруг Capistrano не может прочитать из моего хранилища Bitbucket Git во время развертывания?
Сегодня, однако, когда я запускаю обычную cap deploy
команды, он терпит неудачу на третьем этапе, когда он пытался читать из моего Bitbucket Git репозитория:
DEBUG [6906a62c] Command: (export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.2.1"
GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/app/git-ssh.sh" ; /usr/bin/env git
ls-remote --heads [email protected]:klenwell/app.git)
Это ошибка:
DEBUG [6906a62c] conq: repository access denied.
DEBUG [6906a62c] fatal: The remote end hung up unexpectedly
Я сделал очевидное устранение неполадок: искал сообщения об ошибках, подтвердил, что VPS работает, проверено, доступен ли репозиторий, дважды проверены ключи SSH, подтвержден запуск агента SSH. Если все остальное не удастся, я попробую создать новый ключ на моем VPS-хосте.
Эти точки, в частности, у меня смущенный:
- Там было (насколько я могу сказать) нет изменений в Capistrano или конфигурации VPS, поскольку она последней успешной. Я вижу ту же самую команду, которая успешно работает в моих журналах Capistrano на прошлой неделе.
- Когда я нахожу ssh на свой сервер VPS в качестве пользователя развертывания, я могу запустить
ssh -T [email protected]
и ту же самую команду git вручную без проблем. - Сервер Jenkins на моем локальном компьютере может успешно читать из одного репозитория Bitbucket с помощью его ключа развертывания.
Что мне не хватает?
Capistrano использует SSH форвардинг агента. Эффективно это означает, что он будет использовать ваш * локальный * SSH-ключ для авторизации с помощью BitBucket. Изменен ли ваш локальный ключ или нет доступа BitBucket? –
@MattBrictson Ты прибил его. У меня есть несколько пользователей Bitbucket в моей локальной системе, и я думаю, что по умолчанию был сброшен между развертываниями. Во всяком случае, исправление заключалось в том, чтобы добавить эту строку в мой файл 'deploy.rb':' set: ssh_options, {forward_agent: false} '. Преобразуйте свой комментарий в ответ, и я его выберу. Благодаря! – klenwell