org.apache.sshd
Class SshServer

java.lang.Object
  extended by org.apache.sshd.common.AbstractFactoryManager
      extended by org.apache.sshd.SshServer
All Implemented Interfaces:
FactoryManager, ServerFactoryManager

public class SshServer
extends AbstractFactoryManager
implements ServerFactoryManager

The SshServer class is the main entry point for the server side of the SSH protocol. The SshServer has to be configured before being started. Such configuration can be done either using a dependency injection mechanism (such as the Spring framework) or programmatically. Basic setup is usually done using the setUpDefaultServer() method, which will known ciphers, macs, channels, etc... Besides this basic setup, a few things have to be manually configured such as the port number, ShellFactory, the KeyPairProvider and the PasswordAuthenticator. Some properties can also be configured using the AbstractFactoryManager.setProperties(java.util.Map) method. Once the SshServer instance has been configured, it can be started using the start() method and stopped using the stop() method.

Author:
Apache MINA SSHD Project
See Also:
ServerFactoryManager, FactoryManager

Field Summary
 
Fields inherited from interface org.apache.sshd.common.FactoryManager
AUTH_TIMEOUT, MAX_AUTH_REQUESTS, MAX_PACKET_SIZE, WINDOW_SIZE
 
Constructor Summary
SshServer()
           
 
Method Summary
protected  void checkConfig()
           
 java.util.List<NamedFactory<ServerChannel>> getChannelFactories()
          Retrieve the list of named factories for ServerChannel objects.
 CommandFactory getCommandFactory()
          Retrieve the CommandFactory to be used to process commands requests.
 PasswordAuthenticator getPasswordAuthenticator()
          Retrieve the PasswordAuthenticator to be used by the SSH server.
 int getPort()
           
 PublickeyAuthenticator getPublickeyAuthenticator()
          Retrieve the PublickeyAuthenticator to be used by SSH server.
 boolean getReuseAddress()
           
 SessionFactory getSessionFactory()
           
 ShellFactory getShellFactory()
          Retrieve the ShellFactory object to be used to create shells.
 java.util.List<NamedFactory<UserAuth>> getUserAuthFactories()
          Retrieve the list of named factories for UserAuth objects.
static void main(java.lang.String[] args)
           
 void setChannelFactories(java.util.List<NamedFactory<ServerChannel>> channelFactories)
           
 void setCommandFactory(CommandFactory commandFactory)
           
 void setPasswordAuthenticator(PasswordAuthenticator passwordAuthenticator)
           
 void setPort(int port)
          Configure the port number to use for this SSH server.
 void setPublickeyAuthenticator(PublickeyAuthenticator publickeyAuthenticator)
           
 void setReuseAddress(boolean reuseAddress)
           
 void setSessionFactory(SessionFactory sessionFactory)
           
 void setShellFactory(ShellFactory shellFactory)
           
static SshServer setUpDefaultServer()
           
 void setUserAuthFactories(java.util.List<NamedFactory<UserAuth>> userAuthFactories)
           
 void start()
          Start the SSH server and accept incoming exceptions on the configured port.
 void stop()
          Stop the SSH server.
 
Methods inherited from class org.apache.sshd.common.AbstractFactoryManager
getCipherFactories, getCompressionFactories, getKeyExchangeFactories, getKeyPairProvider, getMacFactories, getProperties, getRandomFactory, getSignatureFactories, getVersion, loadVersion, setCipherFactories, setCompressionFactories, setKeyExchangeFactories, setKeyPairProvider, setMacFactories, setProperties, setRandomFactory, setSignatureFactories
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.sshd.common.FactoryManager
getCipherFactories, getCompressionFactories, getKeyExchangeFactories, getKeyPairProvider, getMacFactories, getProperties, getRandomFactory, getSignatureFactories, getVersion
 

Constructor Detail

SshServer

public SshServer()
Method Detail

getPort

public int getPort()

setPort

public void setPort(int port)
Configure the port number to use for this SSH server.

Parameters:
port - the port number for this SSH server

getReuseAddress

public boolean getReuseAddress()

setReuseAddress

public void setReuseAddress(boolean reuseAddress)

getUserAuthFactories

public java.util.List<NamedFactory<UserAuth>> getUserAuthFactories()
Description copied from interface: ServerFactoryManager
Retrieve the list of named factories for UserAuth objects.

Specified by:
getUserAuthFactories in interface ServerFactoryManager
Returns:
a list of named UserAuth factories, never null

setUserAuthFactories

public void setUserAuthFactories(java.util.List<NamedFactory<UserAuth>> userAuthFactories)

getChannelFactories

public java.util.List<NamedFactory<ServerChannel>> getChannelFactories()
Description copied from interface: ServerFactoryManager
Retrieve the list of named factories for ServerChannel objects.

Specified by:
getChannelFactories in interface ServerFactoryManager
Returns:
a list of named ServerChannel factories, never null

setChannelFactories

public void setChannelFactories(java.util.List<NamedFactory<ServerChannel>> channelFactories)

getShellFactory

public ShellFactory getShellFactory()
Description copied from interface: ServerFactoryManager
Retrieve the ShellFactory object to be used to create shells.

Specified by:
getShellFactory in interface ServerFactoryManager
Returns:
a valid ShellFactory object or null if shells are not supported on this server

setShellFactory

public void setShellFactory(ShellFactory shellFactory)

getSessionFactory

public SessionFactory getSessionFactory()

setSessionFactory

public void setSessionFactory(SessionFactory sessionFactory)

getCommandFactory

public CommandFactory getCommandFactory()
Description copied from interface: ServerFactoryManager
Retrieve the CommandFactory to be used to process commands requests.

Specified by:
getCommandFactory in interface ServerFactoryManager
Returns:
a valid CommandFactory object or null if commands are not supported on this server

setCommandFactory

public void setCommandFactory(CommandFactory commandFactory)

getPasswordAuthenticator

public PasswordAuthenticator getPasswordAuthenticator()
Description copied from interface: ServerFactoryManager
Retrieve the PasswordAuthenticator to be used by the SSH server. If no authenticator has been configured (i.e. this method returns null), then client authentication requests based on passwords will be rejected.

Specified by:
getPasswordAuthenticator in interface ServerFactoryManager
Returns:
the PasswordAuthenticator or null

setPasswordAuthenticator

public void setPasswordAuthenticator(PasswordAuthenticator passwordAuthenticator)

getPublickeyAuthenticator

public PublickeyAuthenticator getPublickeyAuthenticator()
Description copied from interface: ServerFactoryManager
Retrieve the PublickeyAuthenticator to be used by SSH server. If no authenticator has been configured (i.e. this method returns null), then client authentication requests based on keys will be rejected.

Specified by:
getPublickeyAuthenticator in interface ServerFactoryManager
Returns:
the PublickeyAuthenticato or null

setPublickeyAuthenticator

public void setPublickeyAuthenticator(PublickeyAuthenticator publickeyAuthenticator)

checkConfig

protected void checkConfig()

start

public void start()
           throws java.io.IOException
Start the SSH server and accept incoming exceptions on the configured port.

Throws:
java.io.IOException

stop

public void stop()
Stop the SSH server. This method will block until all resources are actually disposed.


setUpDefaultServer

public static SshServer setUpDefaultServer()

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception


Copyright © 2008-2009 The Apache Software Foundation. All Rights Reserved.