### Apache Airflow Provider(s)

sftp

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==2.6.0
apache-airflow-providers-apache-hdfs==2.2.0
apache-airflow-providers-apache-hive==2.1.0
apache-airflow-providers-apache-livy==2.1.0
apache-airflow-providers-apache-spark==2.0.3
apache-airflow-providers-celery==2.1.0
apache-airflow-providers-elasticsearch==2.1.0
apache-airflow-providers-ftp==2.0.1
apache-airflow-providers-google==4.0.0
apache-airflow-providers-http==2.0.1
apache-airflow-providers-imap==2.0.1
apache-airflow-providers-jira==2.0.1
apache-airflow-providers-postgres==2.4.0
apache-airflow-providers-redis==2.0.1
**apache-airflow-providers-sftp==2.4.0**
apache-airflow-providers-slack==4.1.0
apache-airflow-providers-sqlite==2.0.1
**apache-airflow-providers-ssh==2.3.0**


### Apache Airflow version

2.2.3 (latest released)

### Operating System

Ubuntu 20.04

### Deployment

Other Docker-based deployment

### Deployment details

_No response_

### What happened

I believe this was introduced in this commit https://github.com/apache/airflow/commit/f35ad27080a2e1f29efc20a9bd0613af0f6ff2ec
In File airflow/providers/sftp/hooks/sftp.py
In lines 74-79
```python
    def __init__(
        self,
        ssh_conn_id: Optional[str] = 'sftp_default',
        ftp_conn_id: Optional[str] = 'sftp_default',
        *args,
        **kwargs,
    ) -> None:

        if ftp_conn_id:
            warnings.warn(
                'Parameter `ftp_conn_id` is deprecated.' 'Please use `ssh_conn_id` instead.',
                DeprecationWarning,
                stacklevel=2,
            )
            kwargs['ssh_conn_id'] = ftp_conn_id
        self.ssh_conn_id = ssh_conn_id
        super().__init__(*args, **kwargs)
```
Since `ftp_conn_id` has a default value of `sftp_default`, it will always override `ssh_conn_id` unless explicitly set to None during init.

### What you expected to happen

If you initialise the hook with `ssh_conn_id` parameter it should use that connection instead of ignoring the parameter and using the default value. 
The deprecation message is also triggered despite only passing in `ssh_conn_id`
`<stdin>:1 DeprecationWarning: Parameter ftp_conn_id is deprecated.Please use ssh_conn_id instead.`

### How to reproduce

```python
from airflow.providers.sftp.hooks.sftp import SFTPHook
hook = SFTPHook(ssh_conn_id='some_custom_sftp_conn_id')
```

There will be a log message stating
`[2022-01-07 01:12:05,234] {base.py:70} INFO - Using connection to: id: sftp_default.` 

### Anything else

This breaks the SFTPSensor and SFTPOperator

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

tests/providers/sftp/hooks/test_sftp_outdated.py
connection = Connection(login='login', host='host', extra=json.dumps({"host_key": TEST_HOST_KEY}))
        get_connection.return_value = connection
        hook = SFTPHook()
        assert hook.host_key is not None
    @mock.patch('airflow.providers.sftp.hooks.sftp.SFTPHook.get_connection')
    def test_key_content_as_str(self, get_connection):
        file_obj = StringIO()
        TEST_PKEY.write_private_key(file_obj)
        file_obj.seek(0)
        key_content_str = file_obj.read()
        connection = Connection(
            login='login',
            host='host',
            extra=json.dumps(
                {
                    "private_key": key_content_str,
                }
            ),
        )
        get_connection.return_value = connection
        hook = SFTPHook()
        assert hook.pkey == TEST_PKEY
        assert hook.key_file is None
    @mock.patch('airflow.providers.sftp.hooks.sftp.SFTPHook.get_connection')
    def test_key_file(self, get_connection):