Ansible com o Github: Permissão negada (Publickey)

3

Estou tentando entender a configuração do GitHub ssh com o Ansible (estou trabalhando no livro Ansible: Up & Running). Estou correndo em dois problemas.

Permissão negada (publickey) - Quando eu executei pela primeira vez o playbook ansible-playbook mezzanine.yml , recebi uma permissão negada:

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

Ok, é justo ver que várias pessoas tiveram esse problema. Então eu pulei para o apêndice A ao rodar o Git com o SSH e ele disse para rodar o ssh-agent e adicionar a chave pública id_rsa:

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

Saída: Identity Added Corri ssh-agent -l para verificar e obtive a cadeia longa: 2048 e3:fb:... Mas recebi a mesma saída. Por isso, verifiquei as documentações do Github sobre gerações de chaves ssh e a solução de problemas que recomendavam a atualização do arquivo de configuração ssh em minha máquina host:

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

Mas isso ainda fornece o mesmo erro. Então, neste ponto, começo a pensar que é o meu arquivo rsa, o que me leva ao segundo problema.

Problemas de geração de chaves - Tentei gerar um certificado adicional para usar, porque o teste do Github emitiu outro erro "Permissão negada (publickey)".

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

Eu segui as instruções do Github do zero e gerou uma nova chave com um nome diferente.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Eu não inseri uma frase secreta e a salvei na pasta .ssh com o nome git_rsa.pub. Eu fiz o mesmo teste e recebi o seguinte:

$ ssh -i ~/.ssh/git_rsa.pub -T [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         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).

Eu verifiquei as permissões e fiz um chmod 700 no arquivo e ainda recebo Permission denied (publickey) . Eu até tentei inserir a chave na minha conta do Github, mas primeiro recebi uma mensagem dizendo que o arquivo de chave precisava começar com ssh-rsa . Então comecei a pesquisar e hacking. Comecei apenas inserindo a longa string no arquivo (começou com --BEGIN PRIVATE KEY--, mas omiti essa parte depois que ela falhou); no entanto, Github não está aceitando, dizendo que é inválido.

Este é o meu comando Ansible no arquivo YAML:

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

  vars:
    repo_url: [email protected]:lorin/mezzanine-example.git

Este é o meu arquivo ansible.cfg com o ForwardAgent configurado:

[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

A caixa é um Ubuntu Trusty64 usando o Mac OS. Se alguém pudesse me dar informações sobre as permissões de arquivo e / ou geração de chaves do Github, eu agradeceria.

    
por Sandwich Heat 11.11.2015 / 20:26

2 respostas

2

Eu tinha transport = paramiko no meu ansible.cfg para corrigir um bug diferente, mas parece estar causando problemas com ForwardAgent=yes . Acabei de remover o transporte e está funcionando novamente.

    
por 26.05.2016 / 22:08
1
  1. Você precisa reordenar seu ~/.ssh/ dir, o arquivo ~/.ssh/config . IdentifyFile não é necessário se suas chaves públicas estiverem com o nome padrão ( ìd_rsa.pub , id_ed25519.pub , id_dsa.pub )
  2. Verifique se você tem um arquivo ansible.cfg dentro do diretório onde está o playbook (seu arquivo * .yml), este terá preferência sobre o padrão /etc/ansible/ansible.cfg config.
  3. As permissões são para o arquivo ~/.ssh/id_rsa private (eu tenho o meu com 0x600 ).

offtopic: "A caixa é um Ubuntu Trusty64 usando o Mac OS"?!?!

    
por 01.01.2016 / 20:19