2015-06-10 4 views
15

У меня проблема с Ansible. Я настроить мерзавец Клонирование на моем окружении, используя ключ SSH моего текущего хоста:Ansible git clone 'Permission Denied', но прямой git clone working

- name: Add user Public Key 
    copy: 
    src: "/Users/alexgrs/.ssh/id_rsa.pub" 
    dest: "/home/vagrant/.ssh/id_rsa.pub" 
    mode: 0644 

- name: Add user Private Key 
    copy: 
    src: "/Users/alexgrs/.ssh/id_rsa" 
    dest: "/home/vagrant/.ssh/id_rsa" 
    mode: 0600 

- name: Clone Repository 
    git: 
    repo: repo.git 
    dest: /home/vagrant/workspace/ 
    update: true 
    accept_hostkey: true 
    key_file: "/home/vagrant/.ssh/id_rsa.pub" 

Если я vagrant ssh на Vagrant и выполнить git pull repo это работает. Но когда я делаю vagrant provision я получил следующее сообщение об ошибке:

stderr: Permission denied (publickey). 
fatal: Could not read from remote repository. 
Please make sure you have the correct access rights and the repository exists. 

Я уверен, что мои ОткрытыйКлюче не используются vangrant предоставления, но я не в состоянии обнаружить, почему.

Вы уже видели этот номер?

спасибо.

EDIT: Кажется, что анзибль не делает Git клон, но пытается следующая команда:

/usr/bin/git ls-remote ssh://repo.git -h refs/heads/HEAD

Я попробовал это в моей бродячей коробке и у меня такой же разрешения Отказано вопрос ,

+0

Какую версию Ansible вы используете? – bkan

+0

У вас может быть такая же проблема (с пересылкой агента SSH), упомянутая в проблемах [# 1303] (https://github.com/mitchellh/vagrant/issues/1303) и [1735] (https://github.com/mitchellh/бродяга/вопросы/1735). Если вы используете Vagrant ~ 1.4.x (например, пакет из репозиториев Ubuntu 14.04), вы, вероятно, найдете некоторое облегчение, обновив версии 1.7.x как Ansible, так и Vagrant.(Похоже, что зависимость библиотеки Ruby [находится в корне проблемы] (https://github.com/mitchellh/vagrant/issues/1735#issuecomment-38764600).) Обновление до новейшего пакета Vagrant .deb от vagrantup. com исправил это для меня. – TheDudeAbides

+1

Похоже, вы пытаетесь клонировать ваш репозиторий открытым ключом: 'key_file:" /home/vagrant/.ssh/id_rsa.pub "'. Это должен быть ваш личный ключ. –

ответ

2

В KEY_FILE опции, вы с помощью открытого ключа, когда вы должны быть с помощью секретного ключа

Источник: http://docs.ansible.com/git_module.html

+0

Я пробовал private_key, но он не работает. Я редактировал свой вопрос с новыми выводами. –

12

нет Копирование закрытых ключей, ИМХО не бывает хорошей идеей. Лучшим вариантом было бы включить ssh agent forwarding.

Вы можете сделать это во всем мире в вашем .ssh/config:

ForwardAgent yes 

или в ansible.cfg:

[ssh_connection] 
ssh_args= -A 

В любом случае, если вы должны убедиться, что хост/VM принимает форвардинг агента. В удаленном /etc/ssh/sshd_config это должно быть определено:

AllowAgentForwarding yes 
+0

Обратите внимание, что AllowAgentForwarding обычно по умолчанию имеет значение «да», но полезно проверить, что он по какой-то причине не отключен. – denishaskin