<!--- 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
In the openssh_keypair module, `set_fs_attributes_if_different` is not called on the public key, so the owner and group do not get set on the .pub file containing the public key.

I haven't tested it or reasoned about the code, but this may only occur when trying to run the task when the public key already exists.

<https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/crypto/openssh_keypair.py#L231>
In this line, file_args only receives the private key file location.

Additionally, there are "isPublicKeyValid" and "isPrivateKeyValid", and in the private key one we can see here <https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/crypto/openssh_keypair.py#L254> that we check the permissions for the private key, but there is no corresponding check in the public key.

##### 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.4
  config file = <path_inside_home_directory>/ansible.cfg
  configured module search path = ['<home_directory>/.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, Jul 16 2019, 07:12:58) [GCC 9.1.0]

```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_HOST_LIST(<path_inside_home_directory>/aws-remote-work/ansible.cfg) = ['<path_inside_home_directory>/aws-remote-work/hosts']

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
host: Linux host-machine 5.2.9-arch1-1-ARCH #1 SMP PREEMPT Fri Aug 16 11:29:43 UTC 2019 x86_64 GNU/Linux
remote: Linux remote-machine 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u5 (2019-08-11) x86_64 GNU/Linux


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
I am running the playbook with --become, so that it's executing as root
<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: create ssh keypair in user home directory
  openssh_keypair:
    path: "/home/{{user_name}}/.ssh/my_ssh_key"
    type: ecdsa
    owner: "{{user_name}}"
    group: "users"
    mode: "u=rw,g=,o=" 
```

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
my_ssh_key should have permissions like
`-rw------- 1 user_name  users`
my_ssh_key.pub should have the same permissions:
`-rw------- 1 user_name  users`

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

only the private key has the correct permissions, and the public key has permissions
`-rw-r--r-- 1 root root`

size:
        description:
            - "Specifies the number of bits in the private key to create. For RSA keys, the minimum size is 1024 bits and the default is 4096 bits.
              Generally, 2048 bits is considered sufficient.  DSA keys must be exactly 1024 bits as specified by FIPS 186-2.
              For ECDSA keys, size determines the key length by selecting from one of three elliptic curve sizes: 256, 384 or 521 bits.
              Attempting to use bit lengths other than these three values for ECDSA keys will cause this module to fail.
              Ed25519 keys have a fixed length and the size will be ignored."
        type: int
    type:
        description:
            - "The algorithm used to generate the SSH private key. C(rsa1) is for protocol version 1.
              C(rsa1) is deprecated and may not be supported by every version of ssh-keygen."
        type: str
        default: rsa
        choices: ['rsa', 'dsa', 'rsa1', 'ecdsa', 'ed25519']
    force:
        description:
            - Should the key be regenerated even if it already exists
        type: bool
        default: false
    path:
        description:
            - Name of the files containing the public and private key. The file containing the public key will have the extension C(.pub).
        type: path
        required: true
    comment:
        description:
            - Provides a new comment to the public key. When checking if the key is in the correct state this will be ignored.
        type: str
        version_added: "2.9"