本文整理汇总了Java中org.apache.sshd.server.SshServer.start方法的典型用法代码示例。如果您正苦于以下问题:Java SshServer.start方法的具体用法?Java SshServer.start怎么用?Java SshServer.start使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.sshd.server.SshServer
的用法示例。
在下文中一共展示了SshServer.start方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: startServer
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
public void startServer() throws IOException {
SshServer sshd = SshServer.setUpDefaultServer();
port = getPort();
sshd.setPort(port);
sshd.setPublickeyAuthenticator(AcceptAllPublickeyAuthenticator.INSTANCE);
SimpleGeneratorHostKeyProvider provider = new SimpleGeneratorHostKeyProvider();
sshd.setKeyPairProvider(provider);
SftpSubsystemFactory.Builder builder = new SftpSubsystemFactory.Builder();
SftpSubsystemFactory sftpFactory = builder.build();
sshd.setSubsystemFactories(new ArrayList<NamedFactory<Command>>() {
{
add(sftpFactory);
}
});
sshd.setHost(LOCALHOST);
String msg = String.format("Local SSH Server started on [%s] and listening on port [%d]", sshd.getHost(), sshd
.getPort());
LOGGER.info(msg);
ScpCommandFactory factory = new ScpCommandFactory();
factory.setDelegateCommandFactory(new FakeCommandFactory());
sshd.setCommandFactory(factory);
Runtime.getRuntime().addShutdownHook(new Thread(new Close(sshd)));
sshd.start();
}
示例2: startServer
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
private SshServer startServer(
FileSystem fileSystem
) throws IOException {
SshServer server = SshServer.setUpDefaultServer();
server.setPort(port);
server.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
server.setPasswordAuthenticator(new StaticPasswordAuthenticator(true));
server.setSubsystemFactories(singletonList(new SftpSubsystemFactory()));
/* When a channel is closed SshServer calls close() on the file system.
* In order to use the file system for multiple channels/sessions we
* have to use a file system wrapper whose close() does nothing.
*/
server.setFileSystemFactory(session -> new DoNotClose(fileSystem));
server.start();
this.server = server;
return server;
}
示例3: setUpSshServer
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
private SshServer setUpSshServer(String algorithm) throws IOException {
SshServer sshServer = SshServer.setUpDefaultServer();
sshServer.setPort(0);
AbstractGeneratorHostKeyProvider hostKeyProvider = SecurityUtils.createGeneratorHostKeyProvider(getServerKeyFile(algorithm));
hostKeyProvider.setAlgorithm(algorithm);
if (algorithm.equals(KeyUtils.EC_ALGORITHM)) {
hostKeyProvider.setKeySize(256);
}
sshServer.setKeyPairProvider(hostKeyProvider);
sshServer.setPublickeyAuthenticator(AcceptAllPublickeyAuthenticator.INSTANCE);
sshServer.setTcpipForwardingFilter(AcceptAllForwardingFilter.INSTANCE);
writeFingerprintToKnownHosts(algorithm);
sshServer.start();
int sshServerPort = sshServer.getPort();
assertTrue(sshServerPort > 0);
return sshServer;
}
示例4: start
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
public void start(int port) throws IOException {
if (sshServerMap.get(port) == null) {
SshServer sshServer = SshServer.setUpDefaultServer();
AbstractFileKeyPairProvider fileKeyPairProvider = SecurityUtils.createFileKeyPairProvider();
fileKeyPairProvider.setFiles(Collections.singleton(getHostkey()));
fileKeyPairProvider.setPasswordFinder(resourceKey -> "cloudbreak");
sshServer.setKeyPairProvider(fileKeyPairProvider);
sshServer.setPublickeyAuthenticator((username, key, session) -> true);
setCommandFactory(sshServer);
sshServer.setFileSystemFactory(new MockFileSystemFactory());
sshServer.setPort(port);
sshServer.start();
LOGGER.debug(sshServer.getHost());
sshServerMap.put(port, sshServer);
}
}
示例5: startServer
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
@PostConstruct
void startServer() throws IOException {
SshServer server = sshServer();
server.start();
properties.getShell().setPort(server.getPort()); // In case server port is 0, a random port is assigned.
log.info("SSH server started on port {}", properties.getShell().getPort());
}
示例6: executeCommandOnServer
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
/**
* SSH can execute command on ssh server.
* @throws Exception In case of error.
*/
@Test
public void executeCommandOnServer() throws Exception {
final int port = SshTest.port();
final SshServer sshd = new MockSshServerBuilder(port)
.usePublicKeyAuthentication().build();
try {
sshd.setCommandFactory(new MkCommandCreator());
sshd.start();
final String cmd = "some test command";
final ByteArrayOutputStream output = new ByteArrayOutputStream();
final Shell shell = new Shell.Verbose(
new Ssh(
InetAddress.getLocalHost().getCanonicalHostName(),
port,
"test",
new TextOf(
new ResourceOf("com/jcabi/ssh/private.key")
).asString()
)
);
final int exit = shell.exec(
cmd,
new DeadInputStream(),
output,
Logger.stream(Level.WARNING, true)
);
MatcherAssert.assertThat(exit, Matchers.is(0));
MatcherAssert.assertThat(output.toString(), Matchers.is(cmd));
} finally {
sshd.stop();
}
}
示例7: executeCommandOnServerWithPrivateKey
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
/**
* SSH can execute command on ssh server with encrypted private key.
* @throws Exception In case of error.
*/
@Test
public void executeCommandOnServerWithPrivateKey() throws Exception {
final int port = SshTest.port();
final SshServer sshd = new MockSshServerBuilder(port)
.usePublicKeyAuthentication().build();
try {
sshd.setCommandFactory(new MkCommandCreator());
sshd.start();
final String cmd = "some other test command";
final ByteArrayOutputStream output = new ByteArrayOutputStream();
final Shell shell = new Shell.Verbose(
new Ssh(
InetAddress.getLocalHost().getCanonicalHostName(),
port,
"other test",
new TextOf(
new ResourceOf("com/jcabi/ssh/encrypted_private.key")
).asString(),
"test-passphrase"
)
);
final int exit = shell.exec(
cmd,
new DeadInputStream(),
output,
Logger.stream(Level.WARNING, true)
);
MatcherAssert.assertThat(exit, Matchers.is(0));
MatcherAssert.assertThat(output.toString(), Matchers.is(cmd));
} finally {
sshd.stop();
}
}
示例8: executesCommand
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
/**
* Checks if {@link SshByPassword} can execute a command on an SSH server.
* @throws Exception If fails
*/
@Test
public void executesCommand() throws Exception {
final String username = "test";
final String password = "password";
final int port = SshByPasswordTest.port();
final SshServer sshd = new MockSshServerBuilder(port)
.usePasswordAuthentication(username, password).build();
sshd.setCommandFactory(new MkCommandCreator());
sshd.start();
final String cmd = "some test command";
final ByteArrayOutputStream output = new ByteArrayOutputStream();
final Shell shell = new Shell.Verbose(
new SshByPassword(
InetAddress.getLocalHost().getHostAddress(),
port,
username,
password
)
);
final int exit = shell.exec(
cmd,
new DeadInputStream(),
output,
Logger.stream(Level.WARNING, true)
);
sshd.stop();
MatcherAssert.assertThat(exit, Matchers.equalTo(0));
MatcherAssert.assertThat(output.toString(), Matchers.equalTo(cmd));
}
示例9: main
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
Logger logger = LoggerFactory.getLogger(Spash.class);
logger.info("Initializing the file system");
SpashFileSystem.get().getFileSystem();
logger.info("Initializing Spark by running a simple job");
SpashSparkSubsystem.get().parallelize(Arrays.asList(1, 2, 3)).collect();
logger.info("Starting the Spash shell");
SshServer server = SshServerFactory.create();
server.start();
logger.info("Spash shell started");
synchronized(Spash.class) {
Spash.class.wait();
}
}
示例10: portTest
import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
@Test(timeout = 8000L, expected = Test.None.class)
public void portTest() throws ClassNotFoundException, IOException, Exception {
// 1 server socket
ServerSocket socketServer1 = new ServerSocket(9090, 0, InetAddress.getLoopbackAddress());
Assert.assertEquals(socketServer1.getLocalPort(), 9090);
// the port number is automatically allocated from an ephemeral port range
// by native method
// PlainSocketImpl.socketBind().
ServerSocket socketServer2 = new ServerSocket(0, 0, InetAddress.getLoopbackAddress());
Assert.assertNotEquals(socketServer2.getLocalPort(), 0);
// 2 client socket
// connect to above server socket
// by native method
// AbstractPlainSocketImpl.socketConnect()
Socket clientSocket = new Socket("127.0.0.1", 9090);
Assert.assertNotEquals(clientSocket.getLocalPort(), -1);
Assert.assertEquals(clientSocket.getPort(), 9090); // connect to 9090
Socket clientSocket2 = new Socket();
clientSocket2.bind(new InetSocketAddress("localhost", 4445));
clientSocket2.connect(new InetSocketAddress("127.0.0.1", 9090));
Assert.assertEquals(clientSocket2.getPort(), 9090);
Assert.assertEquals(clientSocket2.getLocalPort(), 4445);
// 3 Jetty httpd
Server httpd = prepareJettyServerForTestOnly();
httpd.start();
Connector con = httpd.getConnectors()[0];
if (con instanceof ServerConnector) {
ServerConnector serverCon = (ServerConnector) con;
String host = serverCon.getHost();
Assert.assertEquals(serverCon.getLocalPort(), 9999);
}
// 4 sshd
// http://mina.apache.org/sshd-project/embedding_ssh.html
// https://svn.apache.org/repos/asf/mina/sshd/tags/sshd-0.3.0/sshd-core/src/main/java/org/apache/sshd/SshServer.java
// sshd case 1
MySshServer sshdServer = sshdServerFactory.create();
sshdServer.start();
Assert.assertEquals(((InetSocketAddress) sshdServer.getIoAcceptor().getBoundAddresses().iterator().next())
.getPort(),
29488);
// sshd case 2
SshServer sshdServer2 = SshServer.setUpDefaultServer();
sshdServer2.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File("key.ser")));
sshdServer2.start();
Assert.assertNotEquals(sshdServer2.getPort(), 0);
socketServer1.close();
socketServer2.close();
clientSocket.close();
clientSocket2.close();
httpd.stop();
httpd.join();
sshdServer.stop();
sshdServer2.stop();
}