当前位置: 首页>>代码示例>>Java>>正文


Java SshServer.start方法代码示例

本文整理汇总了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();
}
 
开发者ID:RationaleEmotions,项目名称:SimpleSSH,代码行数:26,代码来源:LocalServer.java

示例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;
}
 
开发者ID:stefanbirkner,项目名称:fake-sftp-server-rule,代码行数:18,代码来源:FakeSftpServerRule.java

示例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;
}
 
开发者ID:cronn-de,项目名称:ssh-proxy,代码行数:23,代码来源:SshProxyTest.java

示例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);
    }
}
 
开发者ID:hortonworks,项目名称:cloudbreak,代码行数:17,代码来源:MockSshServer.java

示例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());
}
 
开发者ID:anand1st,项目名称:sshd-shell-spring-boot,代码行数:8,代码来源:SshdServerConfiguration.java

示例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();
    }
}
 
开发者ID:jcabi,项目名称:jcabi-ssh,代码行数:37,代码来源:SshTest.java

示例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();
    }
}
 
开发者ID:jcabi,项目名称:jcabi-ssh,代码行数:38,代码来源:SshTest.java

示例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));
}
 
开发者ID:jcabi,项目名称:jcabi-ssh,代码行数:34,代码来源:SshByPasswordTest.java

示例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();
        }

    }
 
开发者ID:nerdammer,项目名称:spash,代码行数:22,代码来源:Spash.java

示例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();
}
 
开发者ID:BruceZu,项目名称:KeepTry,代码行数:65,代码来源:SocketTest.java


注:本文中的org.apache.sshd.server.SshServer.start方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。