Почему нет доступа к репозиторию при деплое?

Настраиваю деплой для проекта и столкнулся с проблемой:
При запуске скрипта

cap production deploy:check
вижу ошибку

INFO [16ef9c10] Running /usr/bin/env git ls-remote --heads git@bitbucket.org:test/pereezd-test.git as deployer@ip
    DEBUG [16ef9c10] Command: ( export GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/test/git-ssh.sh" ; /usr/bin/env git ls-remote --heads git@bitbucket.org:test/pereezd-test.git )
    DEBUG [16ef9c10] 	Permission denied (publickey).
    DEBUG [16ef9c10] 	fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    DEBUG [16ef9c10] 	and the repository exists.


Но если зайти на сервер по ssh и вручную запустить git clone, все работает отлично. Т.е. с ключами все нормально.

production.rb

# server-based syntax
    # ======================
    # Defines a single server with a list of roles and multiple properties.
    # You can define all roles on a single server, or split them:
    
    server 'ip', user: 'deployer', roles: %w{app db web}, primary: true
    # server 'example.com', user: 'deploy', roles: %w{app web}, other_property: :other_value
    # server 'db.example.com', user: 'deploy', roles: %w{db}
    
    set :ssh_options, {
    forward_agent: false }
    
    # role-based syntax
    # ==================
    
    # Defines a role with one or multiple servers. The primary server in each
    # group is considered to be the first unless any  hosts have the primary
    # property set. Specify the username and a domain or IP for the server.
    # Don't use `:all`, it's a meta role.
    
    role :app, %w{deployer@ip}
    role :web, %w{deployer@ip}
    role :db,  %w{deployer@ip}
    
    set :rails_env, :production


Ключи подгружаю с помощью keychain

${HOME}/.bashrc:

keychain ~/.ssh/bitbucket
    . ~/.keychain/`uname -n`-sh


Скорее всего дело в нем, но я не понимаю как по-другому исправить следующее поведение:
захожу по ssh на сервер, запускаю ssh agent, добавляю ключ ssh-add, после логаута все по новой, ключ не сохраняется.

команда на сервере ssh -T git@bitbucket.org

authenticated via a deploy key.
    You can use git or hg to connect to Bitbucket. Shell access is disabled.
    This deploy key has read access to the following repositories:
    test/test:  -- deployer@ip


Мой алгоритм действий:

на сервере-

- генерирую пару ключей

    - запускаю ssh agent

    - публичный ключ добавляю в битбакет

    - приватный ключ добавляю в агент( ssh-add key) с вводом пароля

    - пытаюсь клонировать репозиторий на сервере, хост добавляю в known_hosts, репозиторий успешно клонируется


локально -

- не закрывая ssh сессию( если закрыть, агент тоже выключится) пробую провести деплой, получаю ошибку доступа к репозиторию, проверку типа версии руби проходит корректно.


Получается проблемы две:

1) Нужно как то заставить агент не закрываться после логаута или чтобы ключи добавлялись автоматически( это я пытался решить с помощью keychain)

2) Нужно таки получить доступ к репозиторию при деплое.
  • Вопрос задан
  • 496 просмотров
Пригласить эксперта
Ответы на вопрос 1
paulradzkov
@paulradzkov
Дизайнер, верстальщик, начальник отдела UI
У меня когда-то была ситуация, что скрипт деплоя на GitHub не видел репозиторий через «remote origin». Пришлось задавать отдельно новый «remote deploy» с явно заданным логином и паролем.
Ситуация описана здесь paulradzkov.com/2014/deploy_docpad_site_to_github_...
Может поможет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы