Java Requires Chilkat v11.0.0+
Chilkat2 Java
SFTP use Cert's Private Key for Authentication (Windows)
See more SFTP Examples
Demonstrates how to use the private key of a pre-installed certificate (on Windows) for SFTP authentication. The certificate's private key must be marked as "exportable" when originally installed.Chilkat Java Downloads
import com.chilkatsoft.chilkat2.Cert;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.PrivateKey;
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.
Cert cert = new Cert();
// Load the certificate from the Windows certificate store
try {
cert.loadByCommonName("my_cert_common_name");
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Get the private key.
PrivateKey privKey = new PrivateKey();
String privKeyPem;
try {
cert.getPrivateKey(privKey);
privKeyPem = privKey.getPkcs8Pem();
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
SshKey sshKey = new SshKey();
try {
sshKey.fromOpenSshPrivateKey(privKeyPem);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Connect to an SSH/SFTP server
SFtp sftp = new SFtp();
try {
sftp.connect("sftp.example.com", 22);
// Authenticate with the SSH server using a username + private key.
// (The private key serves as the password. The username identifies
// the SSH user account on the server.)
sftp.authenticatePk("mySshLogin", sshKey);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
System.out.println("OK, the connection and authentication with the SSH server is completed.");
// This example is only to show the connection + authentication using a private key associated with a certificate in the Windows certificate store...
}
}