You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@mina.apache.org by "Sadhani, Girish (NSN - IN/Bangalore)" <gi...@nsn.com> on 2009/08/05 14:28:34 UTC
Help needed with Apache SSHD
Hello All,
I am trying to setup a SSH Server using Apache SSHD. I tried using the
quick SSH server setup as suggested in the Apache SSHD documentation:
http://mina.apache.org/sshd/embedding-sshd-in-5-minutes.html
My code :
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import org.apache.mina.core.session.IoSession;
import org.apache.sshd.SshServer;
import org.apache.sshd.common.AbstractSessionIoHandler;
import org.apache.sshd.common.keyprovider.FileKeyPairProvider;
import org.apache.sshd.server.PasswordAuthenticator;
import org.apache.sshd.server.SessionFactory;
import org.apache.sshd.server.CommandFactory.ExitCallback;
import org.apache.sshd.server.ShellFactory.Shell;
import org.apache.sshd.server.command.ScpCommand;
import org.apache.sshd.server.command.ScpCommandFactory;
import
org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
import org.apache.sshd.server.shell.ProcessShellFactory;
public class Main {
public static SshServer sshd = null;
public static SessionFactory sessFactory =null;
public static IoSessionImpl ioSession = null;
public static ProcessShellFactory shell = null;
public static void main(String[] args) throws
InterruptedException, IOException {
SshServer sshd = SshServer.setUpDefaultServer();
sshd.setPort(22);
sshd.setKeyPairProvider(new
SimpleGeneratorHostKeyProvider("hostkey.ser"));
//sshd.setShellFactory(new ProcessShellFactory(new
String[] { "/usr/bin/login", "-f", "-h", "localhost", "$USER",
"/bin/sh", "-i" }));
sshd.setShellFactory(new ProcessShellFactory(new
String[] { "/bin/sh", "-i", "-l" }));
//sshd.setPasswordAuthenticator(new
PAMPasswordAuthenticator());
sshd.setPasswordAuthenticator(new
PasswordAuthenticator() {
public Object
authenticate(String username, String password) {
return (username != null &&
username.equals(password)) ? username : null;
}
});
sshd.start();
}
}
I am trying to do this on my PC, config is :
> Windows XP
> Pentium 4
The problem is that when I try to login using PuTTY, the shell exits
after the prompt for username and password !! I tried debugging this, I
saw that it comes to the authenticate procedure, after which it the
PuTTY shell exits without any error message.
Any help will be greatly appreciated.
Thanks & Regards,
Girish. S. Sadhani