<!--- 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!!
use_tty = self.get_option('use_tty')
        if not in_data and sudoable and use_tty:
            args = (ssh_executable, '-tt', self.host, cmd)
        else:
            args = (ssh_executable, self.host, cmd)
        cmd = self._build_command(*args)
        (returncode, stdout, stderr) = self._run(cmd, in_data, sudoable=sudoable)
        
        if getattr(self._shell, "_IS_WINDOWS", False) and stderr.startswith(b"#< CLIXML"):
            stderr = _parse_clixml(stderr)
        return (returncode, stdout, stderr)
    def put_file(self, in_path, out_path):
        ''' transfer a file from local to remote '''
        super(Connection, self).put_file(in_path, out_path)
        display.vvv(u"PUT {0} TO {1}".format(in_path, out_path), host=self.host)
        if not os.path.exists(to_bytes(in_path, errors='surrogate_or_strict')):
            raise AnsibleFileNotFound("file or module does not exist: {0}".format(to_native(in_path)))
        if getattr(self._shell, "_IS_WINDOWS", False):
            out_path = self._escape_win_path(out_path)
        return self._file_transport_command(in_path, out_path, 'put')
    def fetch_file(self, in_path, out_path):
        ''' fetch a file from remote to local '''
        super(Connection, self).fetch_file(in_path, out_path)
        display.vvv(u"FETCH {0} TO {1}".format(in_path, out_path), host=self.host)
        
        if getattr(self._shell, "_IS_WINDOWS", False):
            in_path = self._escape_win_path(in_path)
        return self._file_transport_command(in_path, out_path, 'get')
    def reset(self):