<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
If you don't have an ssh client installed in container image or on your system, ansible just throws following error -  `The error was: FileNotFoundError: [Errno 2] No such file or directory: b'ssh': b'ssh'` error. 

```
TASK [Gathering Facts] *********************************************************
[WARNING]: Unhandled error in Python interpreter discovery for host <hostname1>: [Errno 2] No such file or directory: b'ssh': b'ssh'

[WARNING]: Unhandled error in Python interpreter discovery for host <hostname2>: [Errno 2] No such file or directory: b'ssh': b'ssh'

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No such file or directory: b'ssh': b'ssh'
fatal: [<hostname1>]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No such file or directory: b'ssh': b'ssh'
fatal: [<hostname2>]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
```

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
2.9.6
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Run playbook on the system where ssh client is not installed & playbook is expecting to use ssh keys for remote hosts.


<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
If possible adding an error message indicating `ssh client is not installed on the system`

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
Error message mentioned in the summary 
The error was: FileNotFoundError: [Errno 2] No such file or directory: b'ssh': b'ssh'
```

Thank you!!
raise AnsibleControlPersistBrokenPipeError('Data could not be sent because of ControlPersist broken pipe: %s' % additional)
            elif in_data and checkrc:
                raise AnsibleConnectionFailure('Data could not be sent to remote host "%s". Make sure this host can be reached over ssh: %s'
                                               % (self.host, additional))
        return (p.returncode, b_stdout, b_stderr)
    @_ssh_retry
    def _run(self, cmd, in_data, sudoable=True, checkrc=True):
        """Wrapper around _bare_run that retries the connection
        """
        return self._bare_run(cmd, in_data, sudoable=sudoable, checkrc=checkrc)
    @_ssh_retry
    def _file_transport_command(self, in_path, out_path, sftp_action):
        
        
        host = '[%s]' % self.host
        smart_methods = ['sftp', 'scp', 'piped']
        
        if getattr(self._shell, "_IS_WINDOWS", False):
            smart_methods.remove('piped')
        
        methods = []
        
        ssh_transfer_method = self._play_context.ssh_transfer_method
        if ssh_transfer_method is not None:
            if not (ssh_transfer_method in ('smart', 'sftp', 'scp', 'piped')):
                raise AnsibleOptionsError('transfer_method needs to be one of [smart|sftp|scp|piped]')
            if ssh_transfer_method == 'smart':
                methods = smart_methods
            else:
                methods = [ssh_transfer_method]