Skip to content

Instantly share code, notes, and snippets.

@offbynull
Created March 6, 2018 19:04
Show Gist options
  • Select an option

  • Save offbynull/3f67b04d53c9a39f1e2b38539e5704e2 to your computer and use it in GitHub Desktop.

Select an option

Save offbynull/3f67b04d53c9a39f1e2b38539e5704e2 to your computer and use it in GitHub Desktop.
Basic SSHJ Usage
package com.offbynull.rfm.ssh;
import java.io.IOException;
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.connection.channel.direct.Session.Command;
import net.schmizz.sshj.userauth.keyprovider.KeyProvider;
public final class SshjBasic {
public static void main(String[] args) throws Exception {
try (SSHClient ssh = new SSHClient()) {
// If you don't know the fingerprint of the host, use the following...
//ssh.addHostKeyVerifier(new PromiscuousVerifier()); OR ssh.addHostKeyVerifier((h, p, k) -> true);
// If you do know the fingerprint of the host, add them using the following...
//# ls -l /etc/ssh | grep ssh_host_.*_key
//-rw------- 1 root root 668 Mar 6 18:05 ssh_host_dsa_key
//-rw-r--r-- 1 root root 621 Mar 6 18:05 ssh_host_dsa_key.pub
//-rw------- 1 root root 227 Mar 6 18:05 ssh_host_ecdsa_key
//-rw-r--r-- 1 root root 193 Mar 6 18:05 ssh_host_ecdsa_key.pub
//-rw------- 1 root root 432 Mar 6 18:05 ssh_host_ed25519_key
//-rw-r--r-- 1 root root 113 Mar 6 18:05 ssh_host_ed25519_key.pub
//-rw------- 1 root root 1675 Mar 6 18:05 ssh_host_rsa_key
//-rw-r--r-- 1 root root 413 Mar 6 18:05 ssh_host_rsa_key.pub
//# ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
//2048 SHA256:ssyMcxeRiaGaPQ6DjGDck+gJw0C2Mo2Pt3FtIltdgM8 root@ubuntu-s-2vcpu-4gb-lon1-01 (RSA)
ssh.addHostKeyVerifier("SHA256:ssyMcxeRiaGaPQ6DjGDck+gJw0C2Mo2Pt3FtIltdgM8");
//# ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key
//1024 SHA256:FQUau86pV4LYI+Eu0JSHHurSyuWFdj6FpqMTPi27UBs root@ubuntu-s-2vcpu-4gb-lon1-01 (DSA)
ssh.addHostKeyVerifier("SHA256:FQUau86pV4LYI+Eu0JSHHurSyuWFdj6FpqMTPi27UBs");
//# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key
//256 SHA256:z4TdK9nogKQfT+u5kfYiGgfnHlNRNbcplTmh0ASuXhw root@ubuntu-s-2vcpu-4gb-lon1-01 (ECDSA)
ssh.addHostKeyVerifier("SHA256:z4TdK9nogKQfT+u5kfYiGgfnHlNRNbcplTmh0ASuXhw");
//# ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key
//256 SHA256:KjQYRkUQnb9cMnpjiTAtszmiglAu32/no2PGLg+WaaU root@ubuntu-s-2vcpu-4gb-lon1-01 (ED25519)
ssh.addHostKeyVerifier("SHA256:KjQYRkUQnb9cMnpjiTAtszmiglAu32/no2PGLg+WaaU");
// If you have a username and password...
//ssh.connect("159.65.85.29", 22);
//ssh.authPassword("root", "rootPassword");
// If you have a SSH public/private key set up...
// on CLIENT, generate a key using "ssh-keygen -t rsa"
// copy CLIENT:~/.ssh/id_rsa.pub to SERVER:~/.ssh/authorized_keys
// copy CLIENT:~/.ssh/id_rsa.pub to privKey var below
// copy CLIENT:~/.ssh/id_rsa to pubKey var (optional?)
String privKey =
"-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpAIBAAKCAQEAvng3ojjJG2l/NNiyrsN2c9x0oIbSEFGSVPltpWclZ+M12ZD7\n"
+ "lC5ila0FhQozKKElSfoZyOIgyxq5wkHqIx41OU8ypDraL6rVt9Xuaoj7tGdrXrI0\n"
+ "1Ip942wETidARDRkqgCbu3rvscwInI7bUVvQHIUTXKseMTT+ZwdHpncLdwueZbeY\n"
+ "32FA90KfBj02xQvy4BPuDfR7uxo/16tm4r55JuvNhiytmi3okZ6ZXTopU42sZ+Yb\n"
+ "8AFPm+s4muaVjg/dIAlXfUG5L4ouIhWuYJmS/BlZbz8kbt44Uubk6m84RiFbis0p\n"
+ "q3AVmX2LF7v6Eb//JubtdDr0tzvIKsQAKd7gbwIDAQABAoIBAH8ivXfh0ZMjkw5S\n"
+ "SsrOm6VwlMSF2XedC0D/EQoj1FsI1Wv5E4RwhcuEpzeLfGR1U++SKl3lWqBXoYCi\n"
+ "AMgaJMqxK4tl4TeKH4fLG44vC1v64DdgWlU4cBk6g5ErMAGWu06ig1DcGVyjZWgj\n"
+ "Dw+6aipvRWJIsimERv+8Yz4hHh0CEioUjQmporCNE8uuFRsWsiCQabAibqHJebF6\n"
+ "x1Gh1y9gaGi2TtpzwE+CsL4wz8ST/MkMU2R4vZWEfcfYXSPombkQfhT3zMwt4zhq\n"
+ "WXi+BXVVe82D/ZJnV3jmK9syqNJyR7QvrQW5rxWs/i3LYEwizH8ksI98NaUB/WMO\n"
+ "mnfif6kCgYEA+xagr0hZ2+ziOscaK2XIwVOVmWpyMubOpCTmuCyun5JDy4RnGAFL\n"
+ "tNGgXWlRhtrUpX1ZB8ZuWC6HU0lyJVhFJtvBQZBmHOMqudlga6OPUW7KBdIqX2Z2\n"
+ "mhASSqYyIn0GTPhVJMeImaCY9Dh27fQYSLODSnPMGEAKiDj9UTxwxrUCgYEAwjIH\n"
+ "l0poxwJoRzc+PYkJMTC3vPv38TjbbrCqJPZMqP7MU8QQJ4JKfOfPjm7UK4x/mSdx\n"
+ "Bu6XC4uZKml0FNh4T4179TEWkOGJ8CjRDw7a+E4YidnQvo7f8CRm0xUY0c0XIphl\n"
+ "EBy61XjcO8AZI3T0xnfgbbeiYd5lcTyDZ47rPRMCgYEAvFIyXoVDcGHxI+ilRhtn\n"
+ "QSjxsUlXMbpPDmnm6ggJSQGo+4Ho2OZP4+S+BJGzZhPHHgAvwFch992d/ee+Ryg3\n"
+ "ZXe5MPWewNfY+d+CI/leytLvjwIcacUt+0tGjNquC5P+H8i6A4XsfF0pmzKmcL59\n"
+ "YDnTpQnI7/9IZvdnd4B/jWkCgYBaf1AUTAPKAjAwR+lEafETsF1fv5hLHLD9w2x2\n"
+ "7yTIeH0l6C+TCd/Gl4ydFr7fUIlCCSReE5/mLHcDUcNb14kxoYCLwgV/HOvYNF1A\n"
+ "hC69Gj/LNetWcmSfl4cnhSRc2ROX9qbaPFlBFCKl4Z6VbHKJbuHyn2oX67kgbQ/b\n"
+ "mbm8awKBgQDEPCH80SgMyqao3pgavH/MZBJbngWFtFYwXsZdHdVfaONUqxij4mII\n"
+ "sqnE6nqXcNReCOf/fExLM/ZIBZPXU+YXFpjn6GsBT01xerAsVlln/D1UFU1BOdSB\n"
+ "qbPrtQTqoGqkwvpLfTmywteTFrMuLNM8VoaEFsinq21P2RYcRpEf5g==\n"
+ "-----END RSA PRIVATE KEY-----";
String pubKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+eDeiOMkbaX802LKuw3Zz3HSghtIQUZJU+W2lZyVn4zXZkPuULmKVrQWFCjMooSVJ+hnI4iDLGrnCQeojHjU5TzKkOtovqtW31e5qiPu0Z2tesjTUin3jbAROJ0BENGSqAJu7eu+xzAicjttRW9AchRNcqx4xNP5nB0emdwt3C55lt5jfYUD3Qp8GPTbFC/LgE+4N9Hu7Gj/Xq2bivnkm682GLK2aLeiRnpldOilTjaxn5hvwAU+b6zia5pWOD90gCVd9Qbkvii4iFa5gmZL8GVlvPyRu3jhS5uTqbzhGIVuKzSmrcBWZfYsXu/oRv/8m5u10OvS3O8gqxAAp3uBv User@DESKTOP-G7T6KOV";
KeyProvider keyProvider = ssh.loadKeys(privKey, pubKey, null); // implement a PasswordFinder instance and pass in as 3rd arg if your pub/priv key is secured by a password
ssh.connect("159.65.85.29", 22);
ssh.authPublickey("root", keyProvider);
// Execute command
Command cmd = ssh.startSession().exec("echo hi");
cmd.join();
System.out.println(cmd.getExitStatus());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment