Java Code Examples for net.schmizz.sshj.SSHClient#startSession()
The following examples show how to use
net.schmizz.sshj.SSHClient#startSession() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SSHChannel.java From TeamSpeak-3-Java-API with MIT License | 6 votes |
SSHChannel(TS3Config config) throws IOException { if (!config.hasLoginCredentials()) { throw new TS3ConnectionFailedException("Anonymous queries are not supported when using SSH.\n" + "\t\tYou must specify a query username and password using TS3Config#setLoginCredentials."); } try { client = new SSHClient(); File knownHostsFile = new File(OpenSSHKnownHosts.detectSSHDir(), KNOWN_HOSTS_FILE_NAME); client.addHostKeyVerifier(new AutoAddKnownHosts(knownHostsFile)); client.setConnectTimeout(config.getCommandTimeout()); client.setTimeout(config.getCommandTimeout()); client.setRemoteCharset(StandardCharsets.UTF_8); client.connect(config.getHost(), config.getQueryPort()); client.authPassword(config.getUsername(), config.getPassword()); session = client.startSession(); session.startShell(); } catch (UserAuthException uae) { close(); throw new TS3ConnectionFailedException("Invalid query username or password"); } catch (IOException ioe) { close(); throw ioe; } }
Example 2
Source File: SshjHolderTests.java From super-cloudops with Apache License 2.0 | 5 votes |
public static void sshjConnectTest() throws IOException, InterruptedException { SSHClient ssh = new SSHClient(); ssh.addHostKeyVerifier(new PromiscuousVerifier()); ssh.connect("10.0.0.160"); KeyProvider keyProvider = ssh.loadKeys(new String(PRIVATE_KEY), null, null); ssh.authPublickey("root", keyProvider); Session session = ssh.startSession(); // TODO // session.allocateDefaultPTY(); Session.Shell shell = session.startShell(); String command = "mvn -version\n"; OutputStream outputStream = shell.getOutputStream(); outputStream.write(command.getBytes()); outputStream.flush(); outputStream.close(); InputStream inputStream = shell.getInputStream(); InputStream errorStream = shell.getErrorStream(); Thread.sleep(1000); shell.close(); if (nonNull(inputStream)) { String message = readFullyToString(inputStream); System.out.println(message); } if (nonNull(errorStream)) { String errmsg = readFullyToString(errorStream); System.out.println(errmsg); } session.close(); ssh.close(); }
Example 3
Source File: Main.java From aedict with GNU General Public License v3.0 | 5 votes |
private static void exec(SSHClient ssh, String cmd) throws ConnectionException, TransportException, IOException { final Session s = ssh.startSession(); try { final Command c = s.exec(cmd); if (c.getExitErrorMessage() != null) { throw new RuntimeException("Command " + cmd + " failed to execute with status " + c.getExitStatus() + ": " + c.getExitErrorMessage() + ", " + c.getErrorAsString()); } } finally { MiscUtils.closeQuietly(s); } }
Example 4
Source File: SshLogAccessService.java From lognavigator with Apache License 2.0 | 5 votes |
@Override public InputStream executeCommand(String logAccessConfigId, String shellCommand) throws LogAccessException { // Get the LogAccessConfig LogAccessConfig logAccessConfig = configService.getLogAccessConfig(logAccessConfigId); // Create ssh client and authenticate SSHClient sshClient = sshClientThreadLocal.get(); boolean closeSshClient = false; if (sshClient == null) { sshClient = connectAndAuthenticate(logAccessConfig); closeSshClient = true; } // Define the precommand (if any) String precommand = ""; if (StringUtils.hasText(logAccessConfig.getPreCommand())) { precommand = logAccessConfig.getPreCommand() + " && "; } // Execute the shell command Session session = null; Command resultCommand; try { session = sshClient.startSession(); resultCommand = session.exec("cd \"" + logAccessConfig.getDirectory() + "\" && " + precommand + shellCommand); } catch (SSHException e) { IOUtils.closeQuietly(session, sshClient); throw new LogAccessException("Error when executing command " + shellCommand + " to " + logAccessConfig, e); } // Get and return the result stream InputStream sequenceStream = new SequenceInputStream(resultCommand.getInputStream(), resultCommand.getErrorStream()); InputStream resultStream = new SshCloseFilterInputStream(sequenceStream, resultCommand, session, (closeSshClient ? sshClient : null)); return resultStream; }
Example 5
Source File: RaspiQuery.java From rpicheck with MIT License | 5 votes |
/** * Checks if the path is a correct path to vcgencmd. * * @param path the path to check * @param client authenticated and open client * @return true, if correct, false if not * @throws IOException if something ssh related goes wrong */ private boolean isValidVcgencmdPath(String path, SSHClient client) throws IOException { final Session session = client.startSession(); session.allocateDefaultPTY(); LOGGER.debug("Checking vcgencmd location: {}", path); final Command cmd = session.exec(path); cmd.join(30, TimeUnit.SECONDS); session.close(); final Integer exitStatus = cmd.getExitStatus(); final String output = IOUtils.readFully(cmd.getInputStream()).toString().toLowerCase(); LOGGER.debug("Path check output: {}", output); return exitStatus != null && exitStatus.equals(0) && !output.contains("not found") && !output.contains("no such file or directory"); }
Example 6
Source File: RudimentaryPTY.java From karamel with Apache License 2.0 | 4 votes |
public static void main(String... args) throws IOException { String privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" + "MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI\n" + "w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP\n" + "kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2\n" + "hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO\n" + "Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW\n" + "yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd\n" + "ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1\n" + "Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf\n" + "TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK\n" + "iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A\n" + "sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf\n" + "4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP\n" + "cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk\n" + "EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN\n" + "CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX\n" + "3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG\n" + "YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj\n" + "3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+\n" + "dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz\n" + "6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC\n" + "P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF\n" + "llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ\n" + "kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH\n" + "+vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ\n" + "NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=\n" + "-----END RSA PRIVATE KEY-----"; String publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"; SSHClient client = new SSHClient(); client.addHostKeyVerifier(new PromiscuousVerifier()); KeyProvider keys = client.loadKeys(privateKey, publicKey, null); client.connect("192.168.33.10", 22); client.authPublickey("vagrant", keys); try { final Session session = client.startSession(); try { session.allocateDefaultPTY(); final Shell shell = session.startShell(); new StreamCopier(shell.getInputStream(), System.out, LoggerFactory.DEFAULT) .bufSize(shell.getLocalMaxPacketSize()) .spawn("stdout"); new StreamCopier(shell.getErrorStream(), System.err, LoggerFactory.DEFAULT) .bufSize(shell.getLocalMaxPacketSize()) .spawn("stderr"); // Now make System.in act as stdin. To exit, hit Ctrl+D (since that results in an EOF on System.in) // This is kinda messy because java only allows console input after you hit return // But this is just an example... a GUI app could implement a proper PTY new StreamCopier(System.in, shell.getOutputStream(), LoggerFactory.DEFAULT) .bufSize(shell.getRemoteMaxPacketSize()) .copy(); } finally { session.close(); } } finally { client.disconnect(); } }
Example 7
Source File: SshMachineTest.java From karamel with Apache License 2.0 | 4 votes |
public void testReadLogfile() throws IOException { String privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" + "MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI\n" + "w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP\n" + "kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2\n" + "hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO\n" + "Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW\n" + "yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd\n" + "ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1\n" + "Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf\n" + "TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK\n" + "iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A\n" + "sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf\n" + "4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP\n" + "cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk\n" + "EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN\n" + "CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX\n" + "3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG\n" + "YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj\n" + "3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+\n" + "dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz\n" + "6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC\n" + "P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF\n" + "llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ\n" + "kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH\n" + "+vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ\n" + "NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=\n" + "-----END RSA PRIVATE KEY-----"; String publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"; SSHClient client = new SSHClient(); client.addHostKeyVerifier(new PromiscuousVerifier()); KeyProvider keys = client.loadKeys(privateKey, publicKey, null); client.connect("192.168.33.10", 22); client.authPublickey("vagrant", keys); Session session = client.startSession(); final Session.Command cmd = session.exec("ls"); cmd.join(); final byte[] buffer = new byte[65536]; InputStream is = cmd.getInputStream(); int r; while ((r = is.read(buffer)) > 0) { String decoded = new String(buffer, "UTF-8"); System.out.println(decoded); } }
Example 8
Source File: SshJExample.java From ExpectIt with Apache License 2.0 | 4 votes |
public static void main(String[] args) throws IOException { SSHClient ssh = new SSHClient(); ssh.addHostKeyVerifier( new HostKeyVerifier() { @Override public boolean verify(String s, int i, PublicKey publicKey) { return true; } }); ssh.connect("sdf.org"); ssh.authPassword("new", ""); Session session = ssh.startSession(); session.allocateDefaultPTY(); Shell shell = session.startShell(); Expect expect = new ExpectBuilder() .withOutput(shell.getOutputStream()) .withInputs(shell.getInputStream(), shell.getErrorStream()) .withEchoInput(System.out) .withEchoOutput(System.err) .withInputFilters(removeColors(), removeNonPrintable()) .withExceptionOnFailure() .build(); try { expect.expect(contains("[RETURN]")); expect.sendLine(); String ipAddress = expect.expect(regexp("Trying (.*)\\.\\.\\.")).group(1); System.out.println("Captured IP: " + ipAddress); expect.expect(contains("login:")); expect.sendLine("new"); expect.expect(contains("(Y/N)")); expect.send("N"); expect.expect(regexp(": $")); expect.send("\b"); expect.expect(regexp("\\(y\\/n\\)")); expect.sendLine("y"); expect.expect(contains("Would you like to sign the guestbook?")); expect.send("n"); expect.expect(contains("[RETURN]")); expect.sendLine(); } finally { expect.close(); session.close(); ssh.close(); } }
Example 9
Source File: SshJClientActions.java From cloudbreak with Apache License 2.0 | 4 votes |
private static Session startSshSession(SSHClient ssh) throws ConnectionException, TransportException { Session sshSession = ssh.startSession(); sshSession.allocateDefaultPTY(); return sshSession; }