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


Java SshServer.setCommandFactory方法代码示例

本文整理汇总了Java中org.apache.sshd.server.SshServer.setCommandFactory方法的典型用法代码示例。如果您正苦于以下问题:Java SshServer.setCommandFactory方法的具体用法?Java SshServer.setCommandFactory怎么用?Java SshServer.setCommandFactory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.sshd.server.SshServer的用法示例。


在下文中一共展示了SshServer.setCommandFactory方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: sshServer

import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
@Bean
SshServer sshServer() {
    SshdShellProperties.Shell props = properties.getShell();
    if (Objects.isNull(props.getPassword())) {
        props.setPassword(UUID.randomUUID().toString());
        log.info("********** User password not set. Use following password to login: {} **********",
                props.getPassword());
    }
    SshServer server = SshServer.setUpDefaultServer();
    server.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File(props.getHostKeyFile())));
    server.setPublickeyAuthenticator(Objects.isNull(props.getPublicKeyFile())
            ? RejectAllPublickeyAuthenticator.INSTANCE
            : new SshdAuthorizedKeysAuthenticator(new File(props.getPublicKeyFile())));
    server.setHost(props.getHost());
    server.setPasswordAuthenticator(passwordAuthenticator());
    server.setPort(props.getPort());
    server.setShellFactory(() -> sshSessionInstance());
    server.setCommandFactory(command -> sshSessionInstance());
    return server;
}
 
开发者ID:anand1st,项目名称:sshd-shell-spring-boot,代码行数:21,代码来源:SshdServerConfiguration.java

示例3: create

import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
public static SshServer create() {

        SshServer sshd = SshServer.setUpDefaultServer();
        sshd.setPort(SpashConfig.getInstance().spashListenPort());

        AbstractGeneratorHostKeyProvider keyProvider = new SimpleGeneratorHostKeyProvider(new File(SpashConfig.getInstance().spashKeyFileName()));
        keyProvider.setAlgorithm(SpashConfig.getInstance().spashKeyAlgorithm());
        keyProvider.setKeySize(SpashConfig.getInstance().spashKeyLength());

        sshd.setKeyPairProvider(keyProvider);

        List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>();
        userAuthFactories.add(new UserAuthPasswordFactory());
        sshd.setUserAuthFactories(userAuthFactories);

        sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
            @Override
            public boolean authenticate(String username, String password, ServerSession serverSession) throws PasswordChangeRequiredException {
                return username!=null && username.length()>0 && username.equals(password);
            }
        });

        sshd.setShellFactory(new SpashShellFactory());

        List<NamedFactory<Command>> namedFactoryList = new ArrayList<>();
        namedFactoryList.add(new SftpSubsystemFactory());
        sshd.setSubsystemFactories(namedFactoryList);

        sshd.setCommandFactory(new ScpCommandFactory());

        sshd.setFileSystemFactory(new FileSystemFactory() {
            @Override
            public FileSystem createFileSystem(Session session) throws IOException {
                return SpashFileSystem.get().getFileSystem();
            }
        });

        return sshd;
    }
 
开发者ID:nerdammer,项目名称:spash,代码行数:40,代码来源:SshServerFactory.java

示例4: 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

示例5: 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

示例6: 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

示例7: setupTestServer

import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
public static SshServer setupTestServer(Class<?> anchor) {
    SshServer sshd = SshServer.setUpDefaultServer();
    sshd.setKeyPairProvider(createTestHostKeyProvider(anchor));
    sshd.setPasswordAuthenticator(BogusPasswordAuthenticator.INSTANCE);
    sshd.setPublickeyAuthenticator(AcceptAllPublickeyAuthenticator.INSTANCE);
    sshd.setShellFactory(EchoShellFactory.INSTANCE);
    sshd.setCommandFactory(UnknownCommandFactory.INSTANCE);
    return sshd;
}
 
开发者ID:termd,项目名称:termd,代码行数:10,代码来源:Utils.java

示例8: setCommandFactory

import org.apache.sshd.server.SshServer; //导入方法依赖的package包/类
private void setCommandFactory(SshServer sshServer) {
    ScpCommandFactory scpCommandFactory = new ScpCommandFactory();
    scpCommandFactory.setDelegateCommandFactory(new MockCommandFactory());
    sshServer.setCommandFactory(scpCommandFactory);
}
 
开发者ID:hortonworks,项目名称:cloudbreak,代码行数:6,代码来源:MockSshServer.java


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