[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Need help.


thanx for the answer!
It is a pity :(. so,if i can't develop second half of the port forwarding
routines, i'll try to use libssh2. maybe there will be easy to develop this
feature for me.

WBR

Taras Halturin.

On Sun, Sep 13, 2009 at 1:14 PM, Aris Adamantiadis <aris@xxxxxxxxxxxx>wrote:

> Hello Taras,
>
> I am sorry the documentation let you think it would be so easy... In fact
> channel_open_forward only does half the work, this is connecting to a remote
> host:port from the ssh server and stream it into a channel. However the port
> binding and the select loop (to verify if data is arriving and dispatching
> it) is unfortunately up to you.
>
> Looking at the select_loop in sample.c would be a good start-up for you,
> even if we should consider writing a working example in the examples
> directory. The functionnality you expected may be available in the 0.5
> release.
>
> Andreas, Maybe we should make clear into the documentation about what I
> just stated above. I also only see online documentation for the 0.4.0 branch
> when the stable branch is still 0.3.x. Could you have a look ?
> Regards,
>
> Aris
>
> Taras Halturin a écrit :
>
>  Hi all!
>>
>> i'm trying to use libssh for the port forwarding and it doesnt work for me
>> :(. I need to forward remote port to the local host like this:
>> ssh -L 22222:localhost:8222 fantom@xxxxxxxxxxxxx
>>
>> here is the code:
>>
>>    static gboolean
>>    do_open_channel (gchar *username, gchar *password, gchar *remote,
>>                     guint remote_port, guint local_port)
>>    {
>>     SSH_SESSION *ssh = ssh_new();
>>     SSH_OPTIONS *opts = ssh_options_new();
>>     CHANNEL *ch = NULL;
>>
>>     ssh_options_set_port (opts, 22);
>>     ssh_options_set_host (opts, remote);
>>    ssh_set_options (ssh, opts);
>>
>>    if (ssh_connect(ssh) != SSH_OK)
>>    {
>>    g_warning ("Error at connection :%s\n",ssh_get_error (ssh));
>>    return FALSE;
>>    }
>>
>>    ssh_is_server_known(ssh);
>>
>>    if (ssh_userauth_autopubkey(ssh) != SSH_AUTH_SUCCESS)
>>    {
>>    g_warning ("Authenticating with pubkey: %s\n",ssh_get_error(ssh));
>>    if (ssh_userauth_password (ssh, username, password) !=
>> SSH_AUTH_SUCCESS)
>>    {
>>    g_warning ("Authentication with password failed: %s\n",ssh_get_error
>>    (ssh));
>>    return FALSE;
>>    }
>>    }
>>
>>    ch = channel_new (ssh);
>>
>>    if (channel_open_forward (ch, remote, remote_port, "127.0.0.1",
>>    local_port) != SSH_OK)
>>    {
>>    g_warning ("Error when opening forward:%s\n", ssh_get_error (ssh));
>>    return FALSE;
>>    }
>>
>>    g_debug ("Chanel is forwarded");
>>
>>    return TRUE;
>>    //channel_close(channel);
>>    //channel_free(channel);
>>    //ssh_disconnect(ssh);
>>    }
>>
>>
>> i'm calling this func with args:
>>
>> do_open_channel ("fantom","megapass", "myremote.host", 8222, 22222);
>>
>> No errors happend, "Chanel is forwarded" has printed, but i can't see the
>> listener on the 22222 port. What is wrong? Could somebody help me?
>>
>> WBR
>>
>> Taras Halturin.
>>
>
>

Follow-Ups:
Re: Need help.Vic Lee <llyzs@xxxxxxx>
References:
Need help.Taras Halturin <halturin@xxxxxxxxx>
Re: Need help.Aris Adamantiadis <aris@xxxxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org