<!--- 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

`openssh_keypair` handles encrypted key files poorly.

##### ISSUE TYPE
- Bug Report

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

openssh_keypair

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.5
  config file = /home/thom/git/dotfiles-ansible/ansible.cfg
  configured module search path = ['/home/thom/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.4 (default, Oct  4 2019, 06:57:26) [GCC 9.2.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_NOCOWS(/home/thom/git/dotfiles-ansible/ansible.cfg) = True
DEFAULT_HOST_LIST(/home/thom/git/dotfiles-ansible/ansible.cfg) = ['/home/thom/git/dotfiles-ansible/hosts']
DEFAULT_MANAGED_STR(/home/thom/git/dotfiles-ansible/ansible.cfg) = This file is managed by Ansible.%n
template: {file}
date: %Y-%m-%d %H:%M:%S
user: {uid}
host: {host}
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Arch Linux

```OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
  - name: Obtain keyfile from this machine                                          
    openssh_keypair:                                                                
      path: "/tmp/sshkey"
      type: ed25519
```
I'm using ed25519 because it's independent of `size`; not sure if it also happens with eg. RSA.

0. Generate ``/tmp/sshkey`` using ``ssh-keygen -t ed25519 -f /tmp/sshkey -N password``
1. Run the above playbook, observe it marks it as `changed`.
2. Observe ``/tmp/sshkey.pub`` is now empty. 
3. Run it again, it's `changed` again
4. It has now replaced the SSH key and the public key is now correct.

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->

1. Either give me an error about encrypted `.ssh` files already existing or properly replace it.

module.fail_json(
            name=base_dir,
            msg='The directory %s does not exist or the file is not a directory' % base_dir
        )
    keypair = Keypair(module)
    if keypair.state == 'present':
        if module.check_mode:
            result = keypair.dump()
            result['changed'] = module.params['force'] or not keypair.isPrivateKeyValid(module) or not keypair.isPublicKeyValid(module)
            module.exit_json(**result)
        try:
            keypair.generate(module)
        except Exception as exc:
            module.fail_json(msg=to_native(exc))
    else:
        if module.check_mode:
            keypair.changed = os.path.exists(module.params['path'])
            if keypair.changed:
                keypair.fingerprint = {}
            result = keypair.dump()
            module.exit_json(**result)
        try:
            keypair.remove()
        except Exception as exc:
            module.fail_json(msg=to_native(exc))
    result = keypair.dump()
    module.exit_json(**result)
if __name__ == '__main__':
    main()