### 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(
            remote_host="remote_host", port="port", username="username", timeout=10, key_file="fake.file"
        )
        with hook.get_tunnel(1234):
            ssh_mock.assert_called_once_with(
                "remote_host",
                ssh_port="port",
                ssh_username="username",
                ssh_pkey="fake.file",
                ssh_proxy=None,
                local_bind_address=("localhost",),
                remote_bind_address=("localhost", 1234),
                host_pkey_directories=None,
                logger=hook.log,
            )
    def test_conn_with_extra_parameters(self):
        ssh_hook = SSHHook(ssh_conn_id=self.CONN_SSH_WITH_EXTRA)
        assert ssh_hook.compress is True
        assert ssh_hook.no_host_key_check is True
        assert ssh_hook.allow_host_key_change is False
        assert ssh_hook.look_for_keys is True
    def test_conn_with_extra_parameters_false_look_for_keys(self):