##### SUMMARY
<!--- Explain the problem briefly below, add suggestions to wording or structure -->
The [main configuration documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#ansible-pipelining) says that pipelining is enabled in the `ssh_connection` or `connection` section.

The [ssh connection plugin](https://docs.ansible.com/ansible/latest/plugins/connection/ssh.html#parameter-pipelining) configuration says pipelining should  be enabled in the `defaults` section.

#31125 (and the associated commit) seems to imply that the `ssh_connection` section is legacy, but the comments (https://github.com/ansible/ansible/issues/31125#issuecomment-334071699) seem to say otherwise.

The actual sections (as demonstrated in the configuration section below) that works are `ssh_connection` and `connection`.


##### ISSUE TYPE
- Documentation Report

##### COMPONENT NAME
ssh

##### ANSIBLE VERSION

```paste below
ansible 2.9.9
  config file = /c/xxx/ansible/ansible.cfg
  configured module search path = ['/c/Users/bendem/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /c/Users/bendem/.local/share/virtualenvs/ansible-oaopcvR0/lib/python3.8/site-packages/ansible
  executable location = /c/Users/bendem/.local/share/virtualenvs/ansible-oaopcvR0/bin/ansible
  python version = 3.8.3 (default, May 18 2020, 08:39:23) [GCC 9.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
With `[defaults]\npipelining = true`

```
ALLOW_WORLD_READABLE_TMPFILES(/c/xxx/ansible/ansible.cfg) = False
ANSIBLE_SSH_EXECUTABLE(/c/xxx/ansible/ansible.cfg) = /usr/bin/ssh
ANSIBLE_SSH_RETRIES(/c/xxx/ansible/ansible.cfg) = 1
DEFAULT_HOST_LIST(/c/xxx/ansible/ansible.cfg) = ['/c/xxx/ansible/inventory/inventory.ini']
DEFAULT_ROLES_PATH(/c/xxx/ansible/ansible.cfg) = ['/c/xxx/ansible/vendors/roles', '/c/xxx/ansible/roles']
DEFAULT_VAULT_ID_MATCH(/c/xxx/ansible/ansible.cfg) = true
DIFF_ALWAYS(/c/xxx/ansible/ansible.cfg) = True
INTERPRETER_PYTHON(/c/xxx/ansible/ansible.cfg) = /usr/bin/python3
INVENTORY_UNPARSED_IS_FAILED(/c/xxx/ansible/ansible.cfg) = True
```

With `[ssh_connection]\npipelining = true`

```paste below
ALLOW_WORLD_READABLE_TMPFILES(/c/xxx/ansible/ansible.cfg) = False
ANSIBLE_PIPELINING(/c/xxx/ansible/ansible.cfg) = True
ANSIBLE_SSH_EXECUTABLE(/c/xxx/ansible/ansible.cfg) = /usr/bin/ssh
ANSIBLE_SSH_RETRIES(/c/xxx/ansible/ansible.cfg) = 1
DEFAULT_HOST_LIST(/c/xxx/ansible/ansible.cfg) = ['/c/xxx/ansible/inventory/inventory.ini']
DEFAULT_ROLES_PATH(/c/xxx/ansible/ansible.cfg) = ['/c/xxx/ansible/vendors/roles', '/c/xxx/ansible/roles']
DEFAULT_VAULT_ID_MATCH(/c/xxx/ansible/ansible.cfg) = true
DIFF_ALWAYS(/c/xxx/ansible/ansible.cfg) = True
INTERPRETER_PYTHON(/c/xxx/ansible/ansible.cfg) = /usr/bin/python3
INVENTORY_UNPARSED_IS_FAILED(/c/xxx/ansible/ansible.cfg) = True
```

With `[connection]\npipelining = true`

```paste below
ALLOW_WORLD_READABLE_TMPFILES(/c/xxx/ansible/ansible.cfg) = False
ANSIBLE_PIPELINING(/c/xxx/ansible/ansible.cfg) = True
ANSIBLE_SSH_EXECUTABLE(/c/xxx/ansible/ansible.cfg) = /usr/bin/ssh
ANSIBLE_SSH_RETRIES(/c/xxx/ansible/ansible.cfg) = 1
DEFAULT_HOST_LIST(/c/xxx/ansible/ansible.cfg) = ['/c/xxx/ansible/inventory/inventory.ini']
DEFAULT_ROLES_PATH(/c/xxx/ansible/ansible.cfg) = ['/c/xxx/ansible/vendors/roles', '/c/xxx/ansible/roles']
DEFAULT_VAULT_ID_MATCH(/c/xxx/ansible/ansible.cfg) = true
DIFF_ALWAYS(/c/xxx/ansible/ansible.cfg) = True
INTERPRETER_PYTHON(/c/xxx/ansible/ansible.cfg) = /usr/bin/python3
INVENTORY_UNPARSED_IS_FAILED(/c/xxx/ansible/ansible.cfg) = True
```

##### OS / ENVIRONMENT
Windows 10, msys2 python3, not that it matters.

##### ADDITIONAL INFORMATION
<!--- Describe how this improves the documentation, e.g. before/after situation or screenshots -->

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

"""
        We need the files we upload to be readable (and sometimes executable)
        by the user being sudo'd to but we want to limit other people's access
        (because the files could contain passwords or other private
        information.  We achieve this in one of these ways:
        * If no sudo is performed or the remote_user is sudo'ing to
          themselves, we don't have to change permissions.
        * If the remote_user sudo's to a privileged user (for instance, root),
          we don't have to change permissions
        * If the remote_user sudo's to an unprivileged user then we attempt to
          grant the unprivileged user access via file system acls.
        * If granting file system acls fails we try to change the owner of the
          file with chown which only works in case the remote_user is
          privileged or the remote systems allows chown calls by unprivileged
          users (e.g. HP-UX)
        * If the chown fails we can set the file to be world readable so that
          the second unprivileged user can read the file.
          Since this could allow other users to get access to private