本文整理汇总了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();
}
示例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;
}
示例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;
}
示例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();
}
}
示例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();
}
}
示例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));
}
示例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;
}
示例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);
}