Net::SSH fails on second retry over remote tunnel

Hello-

Please pardon me if I'm naïve, this is my first post.

I'm working on enabling DRbSSL to tunnel through an SSH connection.

My setup is that the "client" runs a DRbSSL service, which starts, and then
NetSSH is used to perform a client login to the remote host server, and then
sets up a remote_to port forward, so that when the host server wants to
contact the client, it can send a "drbssl://localhost:remote_port" command
to itself which should forward through the tunnel to the client drbssl
service.

To clarify:
On the client computer: drbssl://0.0.0.0:12321 (local blocked port that it
is listening on)
This is tunnelled to the host server with a forwarded remote port of 16000,
by logging into SSH and setting the forward.
On the remote computer: drbssl://localhost:16000 responds with the client's
DRB service.

Here's my problem:

The client DRB installs and sets up just fine. No problem.
When I make the FIRST call, from the host server, drbssl://localhost:16000,
it works.
When I make a SECOND call, to the same address, it hangs and then dies with
the error that "a request to send or receive data was disallowed because the
socket had already been shutdown in that direction with a previous shutdown
call."

First, I'm using OpenSSH for Windows (windows server 2003, sorry), but I
also confirmed this on CopSSH using a second server (also Windows, w2k) -
same error. My Net::SSH and OpenSSH are up to date.

I've tried several methods of fixing this, from reconfiguring my sshd_config
file, to trying different methods of the Net:SSH session loop, with no luck.
It does not seem to matter how I connect to localhost:16000.

The issues I think might be relevant:
- why does Net::SSH close the socket after forwarding data? Is this a
Windows problem?
- Or is my problem that Drb is sending some kind of stop signal that
Net::SSH is interpreting as a closed session?
- Or should I avoid Net::SSH and use Putty or some other SSH client to
create the tunnel?

I can post my scripts and/or sshd_config on request, not sure if that is
going to be useful. I might also ask for help in how to ssh debug, as I'm
sure that might be revealing but I haven't figured out how to read the
active ssh log file (!).

Thanks-
Brian Madden

Catch Jamis buck on Capistrano mailing list or his blog. He rarely
pops in here i suppose.

···

On 9/1/07, Brian Madden MD <bmadden@peakdocs.com> wrote:

Hello-

Please pardon me if I'm naïve, this is my first post.

I'm working on enabling DRbSSL to tunnel through an SSH connection.

My setup is that the "client" runs a DRbSSL service, which starts, and then
NetSSH is used to perform a client login to the remote host server, and then
sets up a remote_to port forward, so that when the host server wants to
contact the client, it can send a "drbssl://localhost:remote_port" command
to itself which should forward through the tunnel to the client drbssl
service.

To clarify:
On the client computer: drbssl://0.0.0.0:12321 (local blocked port that it
is listening on)
This is tunnelled to the host server with a forwarded remote port of 16000,
by logging into SSH and setting the forward.
On the remote computer: drbssl://localhost:16000 responds with the client's
DRB service.

Here's my problem:

The client DRB installs and sets up just fine. No problem.
When I make the FIRST call, from the host server, drbssl://localhost:16000,
it works.
When I make a SECOND call, to the same address, it hangs and then dies with
the error that "a request to send or receive data was disallowed because the
socket had already been shutdown in that direction with a previous shutdown
call."

First, I'm using OpenSSH for Windows (windows server 2003, sorry), but I
also confirmed this on CopSSH using a second server (also Windows, w2k) -
same error. My Net::SSH and OpenSSH are up to date.

I've tried several methods of fixing this, from reconfiguring my sshd_config
file, to trying different methods of the Net:SSH session loop, with no luck.
It does not seem to matter how I connect to localhost:16000.

The issues I think might be relevant:
- why does Net::SSH close the socket after forwarding data? Is this a
Windows problem?
- Or is my problem that Drb is sending some kind of stop signal that
Net::SSH is interpreting as a closed session?
- Or should I avoid Net::SSH and use Putty or some other SSH client to
create the tunnel?

I can post my scripts and/or sshd_config on request, not sure if that is
going to be useful. I might also ask for help in how to ssh debug, as I'm
sure that might be revealing but I haven't figured out how to read the
active ssh log file (!).

--
Let them talk of their oriental summer climes of everlasting
conservatories; give me the privilege of making my own summer with my
own coals.

http://blog.gnufied.org