You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Simon Kitching <si...@ecnetwork.co.nz> on 2003/05/01 05:04:52 UTC

Re: [Net] plans for ssh


On Tue, 2003-03-11 at 14:40, Daniel F. Savarese wrote: 
> In message <10...@PCSIMON.ecnnz.ecnetwork.co.nz>, Simon Ki
> tching writes:
> >I might be in; I currently have customers asking for this functionality.
> ...
> >Should be able to confirm/deny in about 1 week...
> 
> Excellent!  I'll just play the role of kibitzer :)
> 
> daniel

Hi Daniel,

It's been a while since we discussed SSH support in [net]. I'm posting
this on commons-user not commons-dev because the info here may be useful
to anyone searching email archives for SSH-related stuff, and the user
list is more likely to be searched than the dev list.

My work priorities got somewhat rearranged (as they always do), but I am
back working on SSH-related stuff now.

Having done some more research on java implementations of SSH-related
protocols, here is what I have found out. 

------

The "jsch" library was recommended by another poster on the commons
list. 

In addition, I searched the net for java SSH implementations and found
two other open-source implementation:
* MindTerm 1.2.1 [later versions are commercial]
* sshtools

--

MindTerm 1.2.1 was available under LGPL, later versions are commercial. 
I don't believe any development is being done on this library. In
addition, it only supports SSH1.

The commercial versions provide source and are "free of charge" under
some conditions.

--

The JSCH library was created to support the commercial "WiredX" and the
LGPL derivative "WeirdX" x server implementations. The library is
available under a BSD licence.

It looks like they have just opened development to public contribution
at http://sourceforge.net/projects/jsch/ but there is only one member of
this project and no cvs activity.

Interestingly, SourceForge statistics indicates a reasonable number of
page views of this project, perhaps indicating some interest in java SSH
implementations?

Having downloaded the source code (from jcraft, not sourceforge) and
hacked up a simple SCP client application, I am not particularly
impressed by the quality of this library. 

There are absolutely *no* comments or javadoc or architectural documents
of any kind (and I mean none) for a start. Object-oriented design seems
missing in many places. Error-handling seems to be poor. This opinion is
based on about 12 hours worth of coding with the jsch library : so not
an in-depth opinion, but not just a first-glance either.

It supports SSH1, not sure about SSH2 support.

-- sshtools
This library is available at http://sourceforge.net/projects/sshtools/
under an LGPL licence.

This library seems to be quite nicely designed (from my brief
inspection). It has 7 members, and is reasonably active cvs-wise. There
are a whole range of apps being built on it, like an ssh server and ssh
terminal app.

It supports SSH2 only.
There is no indication of what JVM versions are supported.

It provides support for sftp but not scp.

Another interesting feature is that they have recently decided to avoid
javadocs, and therefore have *deleted* all javadoc in all files. The
project docs state that they found them "unmanageable" and that all
documentation will be maintained separately from the code. I have to say
that I personally disagree pretty strongly with this...


--

Regarding the proposal to implement SSH in the Apache NET project, I
have to reluctantly say that I will probably go with the sshtools
project instead. I certainly don't agree with their attitute to javadoc,
and am concerned about the long-term prospects of a project which makes
it so hard for new developers to contribute (due to the lack of code
comments) but it's hard to justify developing a new library when so much
has already been done by the sshtools team.

However Daniel's comments earlier suggesting that only Java 1.4 or later
be supported, so that the new java.nio interfaces can be used is very
interesting. The sshtools project clearly uses a thread-based system for
IO, so it seems to me that there is a "niche" for a high-performance
nio-based implementation if someone wished to pursue this. There's also
the issue of SSH1 support, which might or might not be useful to people.


I hope all this is of use/interest to someone.

Regards,

Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org