diff --git a/lib/ansible/modules/source_control/git.py b/lib/ansible/modules/source_control/git.py index 5a73b3873f..954fab15b3 100644 --- a/lib/ansible/modules/source_control/git.py +++ b/lib/ansible/modules/source_control/git.py @@ -371,9 +371,10 @@ fi def set_git_ssh(ssh_wrapper, key_file, ssh_opts): - if os.environ.get("GIT_SSH"): - del os.environ["GIT_SSH"] + # git_ssh_command will override git_ssh, so only older git needs it os.environ["GIT_SSH"] = ssh_wrapper + # using shell to avoid 'noexec' issues if module temp dir is located in such a mount + os.environ["GIT_SSH_COMMAND"] = '%s %s' % (os.environ.get('SHELL', '/bin/sh'), ssh_wrapper) if os.environ.get("GIT_KEY"): del os.environ["GIT_KEY"]