Ansible, Vagrant, sudo und ssh-agent

Ansible, Vagrant, sudo und ssh-agent

Ich habe gesehendiese Frageund habe es Defaults env_keep+=SSH_AUTH_SOCKin meine /etc/sudoersDatei eingefügt, aber ich kann immer noch nicht von GitHub auf meiner Vagrant-Box klonen, indem ich sudo: truees sudo_user: <user>in meinem Ansible-Playbook verwende. Ich würde den Code gerne als der Benutzer klonen, den ich zum Ausführen erstellt habe, aber das erweist sich als wirklich frustrierend. Ich kann es tun, wenn ich mich über anmelde, aber wenn ich das tue, erhalte ich den Fehler „Zugriff verweigert“. Wenn ich den Wert als der bestimmte Benutzer wiedergebe, sehe ich, dass er festgelegt ist:ssh [email protected]vagrant sshsudo -u <user> ssh [email protected]SSH_AUTH_SOCK

vagrant@vagrant-ubuntu-trusty-64:/tmp$ sudo -u derp echo $SSH_AUTH_SOCK
/tmp/ssh-w3XYbqlMnX/agent.1592

Antwort1

Ich denke, das Problem ist, dass die /tmp-Datei keine Berechtigungen hat. Wenn Sie

 sudo -u root ssh [email protected]

Das könnte funktionieren, da Root die Dateien lesen kann

Um dies zu beheben, führen Sie als Vagrant-Benutzer Folgendes aus:

setfacl -m otheruser:x   $(dirname "$SSH_AUTH_SOCK")
setfacl -m otheruser:rwx "$SSH_AUTH_SOCK"

Dadurch sollten die otheruserRechte erteilt werden, in das Verzeichnis zu gelangen und die Datei zu lesen.

verwandte Informationen