Ansible-Git-Klon „Berechtigung verweigert“, aber direkter Git-Klon funktioniert

Lesezeit: 3 Minuten

Benutzer-Avatar
Alex Grs

Ich habe ein beunruhigendes Problem mit Ansible. Ich richte ein Git-Klonen in meiner Umgebung mit dem SSH-Schlüssel meines aktuellen Hosts ein:

- 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"

Wenn ich vagrant ssh auf Vagrant und ausführen git pull repoEs klappt. Aber wenn ich a mache vagrant provision Ich habe folgende Fehlermeldung bekommen:

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

Ich bin mir ziemlich sicher, dass mein Publickey nicht von Vangrant Provision verwendet wird, aber ich kann nicht erkennen, warum.

Haben Sie diese Art von Problem bereits gesehen?

Vielen Dank.

BEARBEITEN:
Es scheint, dass Ansible keinen Git-Klon durchführt, aber den folgenden Befehl versucht:

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

Ich habe es in meiner Vagrant-Box ausprobiert und habe das gleiche Problem mit der Verweigerung der Erlaubnis.

  • Welche Ansible-Version verwendest du?

    – bkan

    10. Juni 2015 um 20:46 Uhr

  • Möglicherweise haben Sie dasselbe Problem (mit der SSH-Agentenweiterleitung), das unter Probleme erwähnt wird #1303 und 1735. Wenn Sie Vagrant ~1.4.x verwenden (z. B. das Paket aus den Ubuntu 14.04-Repos), werden Sie wahrscheinlich etwas Erleichterung finden, indem Sie sowohl Ansible als auch Vagrant auf die 1.7.x-Versionen aktualisieren. (Es scheint eine Ruby-Bibliotheksabhängigkeit zu sein an der Wurzel des Problems.) Die Aktualisierung auf das neueste Vagrant .deb-Paket von vagrantup.com hat dies für mich behoben.

    – Der Typ bleibt

    12. November 2015 um 4:51 Uhr

  • Anscheinend versuchen Sie, Ihr Repository mit einem öffentlichen Schlüssel zu klonen: key_file: "/home/vagrant/.ssh/id_rsa.pub". Es sollte Ihr privater Schlüssel sein.

    – Jonas Libbrecht

    15. August 2016 um 13:41 Uhr

Benutzer-Avatar
Udondan

Das Kopieren privater Schlüssel ist meiner Meinung nach nie eine gute Idee. Eine bessere Option wäre zu aktivieren ssh-Agentenweiterleitung.

Sie können dies global in Ihrem lokalen tun .ssh/config:

ForwardAgent yes

Oder in Ihrem ansible.cfg:

[ssh_connection]
ssh_args= -A

In jedem Fall müssen Sie jedoch sicherstellen, dass der Host/die VM die Agentenweiterleitung akzeptiert. In der Fernbedienung /etc/ssh/sshd_config das muss definiert werden:

AllowAgentForwarding yes

  • Beachten Sie, dass AllowAgentForwarding normalerweise standardmäßig auf „Ja“ eingestellt ist, aber es ist gut zu überprüfen, ob es aus irgendeinem Grund nicht deaktiviert ist.

    – denishaskin

    13. Juli 2016 um 18:41 Uhr

In der Option key_file verwenden Sie den öffentlichen Schlüssel, wenn Sie den privaten Schlüssel verwenden sollten

Quelle: http://docs.ansible.com/git_module.html

  • Ich habe es mit private_key versucht, aber es funktioniert nicht. Ich habe meine Frage mit neuen Erkenntnissen bearbeitet.

    – Alex Grs

    10. Juni 2015 um 20:41 Uhr

Benutzer-Avatar
AlessMascherpa

Kasse dieses GitHub-Problem.

Das erklärt es repo.git ssh-Klon-URL sollte entweder sein (URL-Syntax):

ssh://[email protected]/my_user/my_repo.git

oder (SCP-Syntax):

[email protected]:my_user/my_repo.git

Überprüfe dein key_file zu.

1085260cookie-checkAnsible-Git-Klon „Berechtigung verweigert“, aber direkter Git-Klon funktioniert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy