### Description

Following #29282, command timeout is set at the `SSHHook` level while it used to be able to set at the `SSHOperator` level.

I will work on a PR as soon as i can.

### Use case/motivation

Ideally, i think we could have a default value set on `SSHHook`, but with the possibility of overriding it at the `SSHOperator` level.

### Related issues

#29282 

### Are you willing to submit a 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)

hook = SSHHook(
            ssh_conn_id=self.CONN_SSH_WITH_TIMEOUT_AND_CONN_TIMEOUT_EXTRA,
            remote_host="remote_host",
            port="port",
            username="username",
            timeout=10,
            conn_timeout=15,
        )
        
        with hook.get_conn():
            ssh_mock.return_value.connect.assert_called_once_with(
                banner_timeout=30.0,
                hostname="remote_host",
                username="username",
                timeout=15,
                compress=True,
                port="port",
                sock=None,
                look_for_keys=True,
            )
    @pytest.mark.parametrize(
        "timeout, conn_timeout, timeoutextra, conn_timeoutextra, expected_value",
        [
            (TEST_TIMEOUT, TEST_CONN_TIMEOUT, True, True, TEST_CONN_TIMEOUT),
            (TEST_TIMEOUT, TEST_CONN_TIMEOUT, True, False, TEST_CONN_TIMEOUT),
            (TEST_TIMEOUT, TEST_CONN_TIMEOUT, False, True, TEST_CONN_TIMEOUT),
            (TEST_TIMEOUT, TEST_CONN_TIMEOUT, False, False, TEST_CONN_TIMEOUT),
            (TEST_TIMEOUT, None, True, True, TEST_CONN_TIMEOUT),