Ошибка ss при инициализации клонов битбакетов
Таким образом, при подготовке моего бродячего ящика с помощью Ansible, я получаю загадочную ошибку при попытке клонировать мое частное хранилище с помощью ssh. В сообщении об ошибке указано, что "Проверка ключа хоста не удалась".
Тем не менее, если я перейду ssh, а затем выполню команду "git clone", частное хранилище успешно клонируется. Это указывает на то, что агент пересылки ssh действительно работает, и бродячее окно может получить доступ к моему личному ключу, связанному с репозиторием Bitbucket.
Я боролся в течение двух дней по этому вопросу и схожу с ума! Пожалуйста, кто-нибудь, помогите мне!!!
Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "192.168.33.10"
config.ssh.forward_agent = true
# Only contains ansible dependencies
config.vm.provision "shell",
inline: "sudo apt-get install python-minimal -y"
# Use ansible for all provisioning:
config.vm.provision "ansible" do |ansible|
ansible.playbook = "provisioning/playbook.yml"
end
end
Мой playbook.yml выглядит следующим образом:
---
- hosts: all
become: true
tasks:
- name: create /var/www/ directory
file: dest=/var/www/ state=directory owner=www-data group=www-data mode=0755
- name: Add the user 'ubuntu' to group 'www-data'
user:
name: ubuntu
shell: /bin/bash
groups: www-data
append: yes
- name: Clone bitbucket repo
git:
repo: git@bitbucket.org:gustavmahler/example.com.git
dest: /var/www/poo
version: master
accept_hostkey: yes
Сообщение об ошибке:
vagrant provision
ЗАДАЧА [общее: клонирование репозитория Bitbucket] *******************************************
фатальный: [по умолчанию]: СБОЙ! => {"updated": false, "cmd": "/usr/bin/git clone - происхождение происхождения" /var/www/poo", "fail ": true, "msg": "Cloning into "/var/www/poo'...\n Предупреждение: постоянное добавление ключа хоста RSA для IP-адреса'104.192.143.3'в список известных хостов.\r\n Ответ запрещен (publickey).\r\nfatal: Не удалось прочитать из удаленного репозитория.\n\n Убедитесь, что у вас есть правильные права доступа \ n, а репозиторий существует.", "rc": 128, "stderr": " Клонирование в '/var/www/poo'...\nWarning: Постоянно добавлен ключ хоста RSA для IP-адреса "104.192.143.3" в список известных хостов. \ R \ n Ответ запрещен (publickey). \ R \ nfatal: Не удалось прочитать из удаленного репозитория. \ N \ n Пожалуйста, убедитесь, что вы имеют правильные права доступа \ n, и репозиторий существует. \ n "," stderr_lines ": [" Клонирование в '/ var / www / poo'... "," Предупреждение: постоянное добавление ключа хоста RSA для IP-адреса '104.192.143.3 'к списку известных хостов. "," В доступе отказано (publickey).", " Fatal: Не удалось прочитать из удаленного репозитория.", "", " Пожалуйста, убедитесь, что y у вас есть правильные права доступа "," и репозиторий существует."], "stdout": "", "stdout_lines": []}
Дополнительная информация:
- ssh-add -l на моей машине содержит соответствующий ключ репозитория bitbucket.
- ssh-add -l внутри поля vagrant также содержит соответствующий ключ репозитория bitbucket (через ssh-forwarding).
Все же клонирование работает, если сделано вручную в бродячей коробке ?:
vagrant ssh
git clone git@bitbucket.org:myusername/myprivaterepo.com.git
Then type "yes" to allow the RSA fingerprint to be added to ~/.ssh/known_hosts (as its first connection with bitbucket)
Возможное решение?
Я видел в документации Ansible, что есть опция key_file:. Как бы я сослался на закрытый ключ, который находится за пределами ящика vagrant и передается через ssh forwarding?
У меня есть несколько ключей ssh для разных сущностей внутри моего ~/.ssh/ Возможно, команда git clone при запуске Ansible Provisioning не выбирает правильный ключ?
Любая помощь очень ценится и спасибо за чтение моего кошмара.
2 ответа
Так как вы запускаете всю книгу с become: true
Переадресация ключей SSH (а также устранение неполадок) становится неактуальной, поскольку пользователь, подключающийся к BitBucket из вашей игры, root
,
Запустите задачу подключения к BitBucket как ubuntu
пользователь:
либо с указанием
become: false
вClone bitbucket repo
задачи),или удаление
become: true
Из игры и добавление ее только к задачам, которые требуют повышенных разрешений.
Этот ответ приходит прямо из полезных комментариев techraf.
- Я изменил владельца каталога /var/www с www-data на ubuntu (имя пользователя, которое я использую для входа через ssh).
- Я также добавил "стать: ложным" над задачей git.
ПРИМЕЧАНИЕ. С тех пор я столкнулся со следующей проблемой, поэтому этот ответ не полностью решает мои проблемы: Ошибка ssh при инициализации репозитория клонов Bubucket.
Обновлен рабочий файл playbook.yml:
---
- hosts: all
become: true
tasks:
- name: create /var/www/ directory
file: dest=/var/www/ state=directory owner=ubuntu group=www-data mode=0755
- name: Add the user 'ubuntu' to group 'www-data'
user:
name: ubuntu
shell: /bin/bash
groups: www-data
append: yes
- name: Clone bitbucket repo
become: false
git:
repo: git@bitbucket.org:[username]/example.com.git
dest: /var/www/poo
version: master
accept_hostkey: yes