Sample code for 30+ languages & platforms
PHP ActiveX

SFTP Authentication using an SSH Certificate

See more SFTP Examples

Demonstrates how to SFTP authenticate using an SSH certificate.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$sbSshCert = new COM("Chilkat.StringBuilder");
$success = $sbSshCert->LoadFile('qa_data/sshCert/user_ecdsa_key-cert.pub','utf-8');
if ($success == 0) {
    print 'Failed to load user_ecdsa_key-cert.pub' . "\n";
    exit;
}

$sbPrivKey = new COM("Chilkat.StringBuilder");
$success = $sbPrivKey->LoadFile('qa_data/sshKeys/user_ecdsa_key','utf-8');
if ($success == 0) {
    print 'Failed to load user_ecdsa_key' . "\n";
    exit;
}

$key = new COM("Chilkat.SshKey");
// Provide the password if the user_ecdsa_key is stored in an encrypted format.
$key->Password = 'secret';
$success = $key->FromOpenSshPrivateKey($sbPrivKey->getAsString());
if ($success == 0) {
    print $key->LastErrorText . "\n";
    exit;
}

// Indicate that the SSH certificate is to be used for authentication.
// The UseSshCertificate method was added in Chilkat v11.0.0
$key->UseSshCertificate($sbSshCert->getAsString());

$sftp = new COM("Chilkat.SFtp");

$hostname = 'sftp.example.com';
$port = 22;
$success = $sftp->Connect($hostname,$port);
if ($success != 1) {
    print $sftp->LastErrorText . "\n";
    exit;
}

$success = $sftp->AuthenticatePk('myLogin',$key);
if ($success != 1) {
    print $sftp->LastErrorText . "\n";
    exit;
}

print 'Public-Key Authentication using an SSH Certificate was Successful!' . "\n";

?>