Ansible с Github: Permission denied (Publickey)

Я пытаюсь понять конфигурацию ssh GitHub с помощью Ansible (я работаю над книгой Ansible: Up & Running). У меня две проблемы.

Permission denied (publickey) - Когда я впервые запустил playbook ansible-playbook mezzanine.yml , мне было отказано в разрешении:

failed: [web] => {"cmd": "/usr/bin/git ls-remote '' -h refs/heads/HEAD", "failed": true, "rc": 128}
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

msg: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

FATAL: all hosts have already failed -- aborting

Хорошо, честно говоря, я вижу, что у нескольких человек была эта проблема. Итак, я перешел к приложению A при запуске Git с SSH, и в нем было сказано запустить ssh-agent и добавить открытый ключ id_rsa:

eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa

Вывод: Identity Added Я запустил ssh-agent -l для проверки и получил длинную строку: 2048 e3: fb: ... Но у меня такой же результат. Поэтому я проверил документацию Github по генерации ключей ssh ​​и устранению неполадок, в которых рекомендовалось обновить файл конфигурации ssh на моем хост-компьютере:

Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile ~/.ssh/id_rsa
    TCPKeepAlive yes
    IdentitiesOnly yes

Но это по-прежнему дает ту же ошибку. Итак, в этот момент я начинаю думать, что это мой файл rsa, что приводит меня ко второй проблеме.

Проблемы с генерацией ключей - Я попытался сгенерировать дополнительный сертификат для использования, потому что тест Github выдал еще одну ошибку «Permission denied (publickey)».

Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Permission denied (publickey).

Я выполнил инструкции Github с нуля и создал новый ключ с другим именем.

ssh-keygen -t rsa -b 4096 -C "me@example.com"

Я не ввел кодовую фразу и сохранил ее в Папка .ssh с названием git_rsa.pub. Я выполнил тот же тест и получил следующее:

$ ssh -i ~/.ssh/git_rsa.pub -T git@github.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/antonioalaniz1/.ssh/git_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: ~/.ssh/github_rsa.pub
Permission denied (publickey).

Я проверил разрешения и выполнил chmod 700 для файла, но все равно получаю Permission denied (publickey) . Я даже попытался ввести ключ в свою учетную запись Github, но сначала получил сообщение о том, что файл ключа должен начинаться с ssh-rsa . Итак, я начал исследовать и взламывать. Началось с простого ввода длинной строки в файл (она начиналась с --BEGIN PRIVATE KEY--, но я пропустил эту часть после того, как она не удалась); однако Github не принимает это, говоря это ' недействительны.

Это моя команда Ansible в файле YAML:

- name: check out the repository on the host
  git: repo={{ repo_url }} dest={{ proj_path }} accept_hostkey=yes

  vars:
    repo_url: git@github.com:lorin/mezzanine-example.git

Это мой файл ansible.cfg с настроенным ForwardAgent:

[defaults]
hostfile = hosts
remote_user = vagrant
private_key_file = .vagrant/machines/default/virtualbox/private_key
host_key_checking = False

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o ForwardAgent=yes

Коробка представляет собой Ubuntu Trusty64 с использованием Mac OS. Если бы кто-нибудь мог рассказать мне о разрешениях на файлы и / или генерации ключей Github, я был бы признателен.

3
задан 11 November 2015 в 21:26
2 ответа
  1. Вам необходимо переупорядочить ваш ~/.ssh/ dir, файл ~/.ssh/config. IdentifyFile не требуется, если ваши открытые ключи имеют имя по умолчанию (md_rsa.pub, id_ed25519.pub, id_dsa.pub)
  2. Проверьте, есть ли у вас внутри dir, в котором находится ваша программа (ваша *. yml файл), этот файл будет иметь предпочтение перед вашим конфигурационным файлом по умолчанию /etc/ansible/ansible.cfg.
  3. Разрешения даны на личный файл ~/.ssh/id_rsa (у меня есть мой с 0x600).

offtopic: "Ящик - Ubuntu Trusty64 с использованием Mac OS" ?!?!

.
1
ответ дан 3 December 2019 в 06:30

У меня был transport = paramiko в моем ansible.cfg , чтобы исправить другую ошибку, но, похоже, вызывает проблемы с ForwardAgent = yes . Просто снял транспорт, и он снова работает.

2
ответ дан 3 December 2019 в 06:30

Теги

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