### 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)

if self.password:
            password = self.password.strip()
            tunnel_kwargs.update(
                ssh_password=password,
            )
        else:
            tunnel_kwargs.update(
                host_pkey_directories=None,
            )
        client = SSHTunnelForwarder(self.remote_host, **tunnel_kwargs)
        return client
    def create_tunnel(
        self, local_port: int, remote_port: int, remote_host: str = "localhost"
    ) -> SSHTunnelForwarder:
        """
        Creates tunnel for SSH connection [Deprecated].
        :param local_port: local port number
        :param remote_port: remote port number
        :param remote_host: remote host
        :return:
        """
        warnings.warn(
            "SSHHook.create_tunnel is deprecated, Please"
            "use get_tunnel() instead. But please note that the"
            "order of the parameters have changed"
            "This method will be removed in Airflow 2.0",
            category=DeprecationWarning,
        )
        return self.get_tunnel(remote_port, remote_host, local_port)
    def _pkey_from_private_key(self, private_key: str, passphrase: str | None = None) -> paramiko.PKey: