Sample code for 30+ languages & platforms
Java

SSH Public Key Authentication

See more SSH Examples

Demonstrates authenticating with an SSH server using public-key authentication. A private key is loaded into an SshKey object and passed to AuthenticatePk. The matching public key must already be installed on the server for the account.

Note: The private-key path is relative to the application's current working directory. Supply the path to your own key file.

Background: Public-key authentication is the standard for unattended and automated SSH: the private key never leaves the client, the server merely trusts the corresponding public key, and no reusable password crosses the wire. SshKey imports several formats — OpenSSH PEM keys via FromOpenSshPrivateKey and PuTTY .ppk files via FromPuttyPrivateKey — encrypted or not. For an encrypted key, set the Password property before importing. Note that LoadText is only a convenience for reading a text file into a string; it does not itself load the key.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Ssh;
import com.chilkatsoft.chilkat2.SshKey;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        // Demonstrates authenticating with an SSH server using public-key authentication.  The matching
        // public key must already be installed on the SSH server for the account.

        Ssh ssh = new Ssh();

        // Timeouts, in milliseconds.
        ssh.setConnectTimeoutMs(5000);
        ssh.setReadTimeoutMs(15000);

        String hostname = "ssh.example.com";
        int port = 22;
        try {
            ssh.connect(hostname, port);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // LoadText is a convenience method that reads any text file into a string.  It does not itself
        // load the key.
        SshKey key = new SshKey();
        String privKeyText;
        try {
            privKeyText = key.loadText("qa_data/my_private_key.pem");

            // Import the private key.  Both OpenSSH and PuTTY formats are supported, encrypted or not.
            // This example loads an unencrypted OpenSSH-format key; for a PuTTY .ppk file, call
            // FromPuttyPrivateKey instead.  For an encrypted key, set key.Password before importing.
            key.fromOpenSshPrivateKey(privKeyText);

            ssh.authenticatePk("mySshLogin", key);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("Public-key authentication successful.");

        ssh.disconnect();
    }
}