Nov 14, 2009 at 8:23 PM

Fantastic project.  In my personal time, I'm working with it attempting to implement an old school Bulletin Board System with SSH as the transport rather than Telnet or a Modem and it's going pretty well (though slowly since personal time is relatively non-existent).

I noticed when first experimenting with your server implementation that I was getting disconnected after any reasonable amount of data was sent.  NSsh didn't know what to do with a Channel Request of type "", so it throws an exception (Invalid Channel Request: ...) and disconnects the session.

It appears this channel request type was added to PuTTY after 0.60 and is unique to PuTTY.  I reviewed the documentation here:, and it indicates that the server should respond with SSH_MSG_CHANNEL_FAILURE so I adjusted the code accordingly.  My fix was to simply add the channel type to ChannelRequestType.cs and respond with ChannelFailurePacket in RequestReceived(ChannelRequestType packet) in Channel.cs.  I am not an SSH expert so this may be horribly wrong, however, but based on the logs I received from PuTTY, the server appears to be handling that request according to spec with my fix.  I'm also not getting disconnected due to that request type.

I have already changed a lot of your application to suit my needs so in order to produce a patch, I'm going to have to grab the latest build.  Before doing so, I thought I'd ask you how you prefer patches to be submitted to you and make sure I'm not redoing work you've already completed but haven't sent up yet. 

I also didn't see a link or method to donate monetarily.  If I actually ever finish my project it will be partly due to your hard work.  I think this is one of only two open source SSH server implementations in C# and it's the only one I could actually get to work :o).

Thanks again,
Matthew Dippel

Nov 16, 2009 at 11:38 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.
Nov 16, 2009 at 11:47 AM

Hi Matthew,

I'm glad to hear that your using NSsh for your project. A SSH based BBS system sounds pretty cool; it reminds me of the good old modem days! :)

I checked the SSH documentation and your right about returning the SSH_MSG_CHANNEL_FAILURE message (see RFC 4254 page 10). Probably the best way to submit patches at the moment is via the CodePlex patch page: