invoke_ssh(arguments..., pty=False, echo=False)

        Star a new shell on a remote server. It first calls
        :meth:`Flow.connect_ssh` using all positional and keyword
        arguments, then calls :meth:`SSHClient.invoke_shell` with the
        pty / echo options.

        Args:
            arguments...: The options for the SSH connection.
            pty(bool): Request a pseudo-terminal from the server.
            echo(bool): Whether to echo read/written data to stdout by default.

        Returns:
            :class:`Flow`: A Flow instance initialised with the SSH channel.

def invoke_ssh_shell(cls, *args, **kwargs):
        """invoke_ssh(arguments..., pty=False, echo=False)

        Star a new shell on a remote server. It first calls
        :meth:`Flow.connect_ssh` using all positional and keyword
        arguments, then calls :meth:`SSHClient.invoke_shell` with the
        pty / echo options.

        Args:
            arguments...: The options for the SSH connection.
            pty(bool): Request a pseudo-terminal from the server.
            echo(bool): Whether to echo read/written data to stdout by default.

        Returns:
            :class:`Flow`: A Flow instance initialised with the SSH channel.
        """

        pty = kwargs.pop('pty', True)
        echo = kwargs.pop('echo', False)
        client = cls.connect_ssh(*args, **kwargs)
        f = client.invoke_shell(pty=pty, echo=echo)
        f.client = client
        return f