Sample code for 30+ languages & platforms
Java

SFTP Public-Key Authentication

See more SFTP Examples

Demonstrates how to authenticate with an SSH/SFTP server using publickey authentication.

Chilkat Java Downloads

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

public class ChilkatExample {

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

        SFtp sftp = new SFtp();

        // Set some timeouts, in milliseconds:
        sftp.setConnectTimeoutMs(5000);
        sftp.setIdleTimeoutMs(15000);

        // Connect to the SSH server.
        // The standard SSH port = 22
        // The hostname may be a hostname or IP address.
        String hostname = "sftp.example.com";
        int port = 22;
        try {
            sftp.connect(hostname, port);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        SshKey key = new SshKey();

        // Load a PEM file into a string variable:
        // (This does not load the PEM file into the key.  The LoadText
        // method is a convenience method for loading the full contents of ANY text
        // file into a string variable.)
        String privKey;
        try {
            privKey = key.loadText("myPrivateKey.pem");

            // Load a private key from a PEM string:
            // (Private keys may be loaded from OpenSSH and Putty formats.
            // Both encrypted and unencrypted private key file formats
            // are supported.  This example loads an unencrypted private
            // key in OpenSSH format.
            key.fromOpenSshPrivateKey(privKey);

            // Authenticate with the SSH server.  Chilkat SFTP supports
            // both password-based authenication as well as public-key
            // authentication.
            sftp.authenticatePk("myLogin", key);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println(sftp.getLastErrorText());
        System.out.println("Public-Key Authentication Successful!");
    }
}