Created
March 6, 2018 19:04
-
-
Save offbynull/3f67b04d53c9a39f1e2b38539e5704e2 to your computer and use it in GitHub Desktop.
Basic SSHJ Usage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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