I think I have this narrowed down to two issues revolving around SSH
connections to the remote machine, but testing is still on-going for one of
the potential issues.
By default in the environment we have PermitRootLogin set to
forced-commands-only on all our machines. This parameter in the SSHD
config seems to be the main crux of the problem. It appears PermitRootLogin
needs set to yes.
The other issue I am seeing, and still testing, is the SSH Key I am
attempting to use is currently an existing key from our admin Jump servers,
but this key has the "no-pty" option set, which appears that it could be
causing additional issues. I have not 100% proven the "no-pty" setting is
an issue, as mentioned, testing continues.
More updates shortly.
-me
On Friday, October 20, 2017 at 3:37:26 PM UTC-4, Michael Ellis wrote:
>
> Hello Group,
>
> New to Ansible and the Project, but like what I see so far!
>
> I am running Ansible 2.4.0 on RHEL7.4. I have SSH keys setup on several
> hosts and can connect to the remote hosts using the SSH Key Pair from my
> Ansible Control node and not be prompted for passwords, all as the root
> user in my POC.
>
> The issue I am seeing is that even though I can use the SSH keys to
> connect, Ansible is failing in anything but a "raw" connection. I am
> guessing there is some oddity in my system or root shell profile (bash),
> but I have tested working machines in my Lab to non-working machine in the
> Dev environment.
>
> The issue seems to be stringing commands together over the SSH
> connection. I can see this issue when even running commands over SSH. But
> I know for certain that the actual login process using the SSH keys does
> work. Below is an example of the debug output when trying to run an ad-hoc
> command, I tired to include what I thought was the most relevant info, but
> if more is needed, please let me know!
>
> 22433 1508524844.83617: _low_level_execute_command(): starting
> 22433 1508524844.83629: _low_level_execute_command(): executing: /bin/sh
> -c 'echo ~ && sleep 0'
> 22433 1508524845.34744: stderr chunk (state=2):
> >>>
>
> ********************************************************************************
> *SSH Banner Displayed Here....*
>
> ********************************************************************************
>
> <<<
>
> 22433 1508524845.72531: stderr chunk (state=3):
> >>>~: -c: line 0: unexpected EOF while looking for matching `''
> ~: -c: line 1: syntax error: unexpected end of file
> <<<
>
> 22433 1508524845.72595: stdout chunk (state=3):
> >>><<<
>
> 22433 1508524845.72611: stderr chunk (state=3):
> >>><<<
>
> 22433 1508524845.72639: _low_level_execute_command() done: rc=1, stdout=,
> stderr=
>
> ********************************************************************************
> *SSH Banner Displayed Here....*
>
> ********************************************************************************
>
> ~: -c: line 0: unexpected EOF while looking for matching `''
> ~: -c: line 1: syntax error: unexpected end of file
>
> 22433 1508524845.72665: _low_level_execute_command(): starting
> 22433 1508524845.72678: _low_level_execute_command(): executing: /bin/sh
> -c '( umask 77 && mkdir -p "` echo
> ~/.ansible/tmp/ansible-tmp-1508524844.84-267267221542940 `" && echo
> ansible-tmp-1508524844.84-267267221542940="` echo
> ~/.ansible/tmp/ansible-tmp-1508524844.84-267267221542940 `" ) && sleep 0'
> 22433 1508524845.97754: stderr chunk (state=2):
> >>>umask: -c: line 0: unexpected EOF while looking for matching `''
> umask: -c: line 1: syntax error: unexpected end of file
> <<<
>
> 22433 1508524845.97820: stdout chunk (state=3):
> >>><<<
>
> 22433 1508524845.97839: stderr chunk (state=3):
> >>><<<
>
> 22433 1508524845.97873: _low_level_execute_command() done: rc=1, stdout=,
> stderr=umask: -c: line 0: unexpected EOF while looking for matching `''
> umask: -c: line 1: syntax error: unexpected end of file
>
> 22433 1508524845.97910: _execute() done
> 22433 1508524845.97921: dumping result to json
> 22433 1508524845.97933: done dumping result, returning
> 22433 1508524845.97955: done running TaskExecutor() for
> lqil0219icma01.cardinalhealth.net/TASK: ping
> [005056a4-c5bf-11a9-98aa-000000000053]
> 22433 1508524845.97981: sending task result for task
> 005056a4-c5bf-11a9-98aa-000000000053
> 22433 1508524845.98058: done sending task result for task
> 005056a4-c5bf-11a9-98aa-000000000053
> 22433 1508524845.98122: WORKER PROCESS EXITING
> lqil0219icma01.cardinalhealth.net | UNREACHABLE! => {
> "changed": false,
> "msg": "Authentication or permission failure. In some cases, you may
> have been able to authenticate and did not have permissions on the target
> directory. Consider changing the remote temp path in ansible.cfg to a path
> rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo
> ~/.ansible/tmp/ansible-tmp-1508524844.84-267267221542940 `\" && echo
> ansible-tmp-1508524844.84-267267221542940=\"` echo
> ~/.ansible/tmp/ansible-tmp-1508524844.84-267267221542940 `\" ), exited with
> result 1",
> "unreachable": true
> }
> 22421 1508524845.98229: no more pending results, returning what we have
> 22421 1508524845.98237: results queue empty
>
> To this appears to be making the SSH connection as the Banner is
> displayed, but when Ansible tries to string a couple commands together, the
> second, and subsequent, command fails, which is causing the play to fail.
>
> I have tried comparing /etc/profile and any .profile/.bashrc files between
> working and non-working nodes, but I must be missing something as I cannot
> get the non-working nodes, to, well, work.
>
> Below is a success using the 'raw' module for the same host:
> # ansible broken-host -m raw -a 'uptime'
> broken-host | SUCCESS | rc=0 >>
> Shared connection to broken-host closed.
>
> An SSH session, we do have root logins set to "forced-commands-only" so
> not sure if this is an issue, I did test setting this to "yes" and
> restarting SSH but still my Ansible commands fail:
> # ssh -q broken-host "grep Root /etc/ssh/sshd_config"
> PermitRootLogin forced-commands-only
>
>
>
> I am just not sure where to go from here, any help would be greatly
> appreciated!
>
> Thanks,
>
> -Mike
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/801fe56b-c536-4d79-a461-a096d53b2f8e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.