6.3. Programmatically connect to the console
A connection to Karaf console can also be done programmatically.
The following code is a simplified version of the code from the client library.
import org.apache.sshd.ClientChannel; import org.apache.sshd.ClientSession; import org.apache.sshd.SshClient; import org.apache.sshd.client.future.ConnectFuture; public class Main { public static void main(String[] args) throws Exception { String host = "localhost"; int port = 8101; String user = "karaf"; String password = "karaf"; SshClient client = null; try { client = SshClient.setUpDefaultClient(); client.start(); ConnectFuture future = client.connect(host, port); future.await(); ClientSession session = future.getSession(); session.authPassword(user, password); ClientChannel channel = session.createChannel("shell"); channel.setIn(System.in); channel.setOut(System.out); channel.setErr(System.err); channel.open(); channel.waitFor(ClientChannel.CLOSED, 0); } catch (Throwable t) { t.printStackTrace(); System.exit(1); } finally { try { client.stop(); } catch (Throwable t) { } } System.exit(0); } }
You can find a more complete example at the following location.