我们有以下主要方法可以启动telnet应用程序并打开终端,并基于凭据启动登录过程。 TelnetT是用于打开/创建应用程序终端的内部jar。
properties.load(new FileInputStream(file));
TelnetT telnetT = TelnetT.createTelnetT(properties);
telnetT.start();
在属性文件中有一些配置设置
@Override
public void run(Connection connection) {
String uuid = UUID.randomUUID().toString();
terminal = new TelnetTerminal(connection, uuid);
run()方法不是Java Thread方法,它是TelnetT方法,它将在telnetT.start()之后运行以打开终端
public TelnetTerminal(Connection connection, String sessionUUID) {
this.terminalIO = connection.getTerminalIO();
this.connection = connection;
this.sessionUUID = sessionUUID;
}
getTerminalIO()将打开终端并启动,登录应用程序,然后继续进行下一步。
所以现在我想对同一应用程序使用Apache SSH。 所以我所做的是主要方法
SshServer sshd = SshServer.setUpDefaultServer();
PropertyResolverUtils.updateProperty(sshd, ServerFactoryManager.WELCOME_BANNER, BANNER);
sshd.setPasswordAuthenticator(new SshPasswordAuthenticator());
sshd.setPort(PORT);
sshd.setShellFactory(new SshSessionFactory());
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File("hostkey.ser")));
sshd.start();
但是在ssh连接成功之后,它只是冻结了,因为TelnetT和sshd都打开了单独的终端。 所以我不想像上面使用TelnetT jar一样打开单独的终端/会话。 ssh身份验证成功后,我想使用相同的ssh会话登录我当前的应用程序。 任何想法或建议都会对我有很大帮助,谢谢