Right, but look at http://mina.apache.org/sshd/
The second sentence of the web site is:
    "SSHD does not really aim at being a replacement for the SSH
client or SSH server from Unix operating systems, but rather provides
support for Java based applications requiring SSH support."

That said, I agree we could provide a simple CommandFactory that would
just run the underlying OS command out of the box.

Maybe try something like:

        sshd.setCommandFactory(new ScpCommandFactory(new CommandFactory() {
            public Command createCommand(String command) {
                return new ProcessShellFactory(command.split(" ")).create();
            }
        }));


On Thu, Jun 3, 2010 at 11:25, Doron Fediuck <do...@redhat.com> wrote:
> On Thursday 03 June 2010 12:14:01 Guillaume Nodet wrote:
>> Not sure to completely understand your problem.
>> When the client execute a remote command, you need the server to be
>> able to understand and actually run the command.
>> If you're sending "ls -l" you need something on the server to handle that.
>> There is only a single CommandFactory implementation provided, which
>> is the one for scp support.
>> If you want to support "ls -l", you need to implement your own
>> CommandFactory, which could either launch a process to run "ls -l"
>> (and that would only work on unix) or implement it yourself the way
>> you want.
>> Not sure if that's only an example, or if you actually want to run "ls
>> -l" though ...
>
> You're right- it's an example, and I wanted to know if there's an 
> implementation
> of shell CommandFactory ? It seems to be the case in standard Linux sshd.
> IE- if I open an exec channel to a Linux based SSH server I can simply
> run 'ls -l ' and get the response without the need to open a shell channel.
>
>>
>> On Thu, Jun 3, 2010 at 11:06, Doron Fediuck <do...@redhat.com> wrote:
>> > Hi,
>> > I tried setting up a server using your 5-minute guide.
>> > This server has-
>> > sshd.setCommandFactory(new ScpCommandFactory());
>> >
>> > The problem is, that my client code runs:
>> > channel = session.createExecChannel("ls -l");
>> >
>> > And this is not supported by ScpCommandFactory (took me a lot of
>> > debug to get the error message "Unknown command, does not begin with 'scp'"
>> > this has to be better logged!).
>> >
>> > When my client code tuns on standard Linux sshd it works perfectly,
>> > how can I support it with mina sshd server code without changing
>> > the client side?
>> >
>> > Thanks,
>> > Doron
>> >
>>
>>
>>
>>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to