Sample code for 30+ languages & platforms
AutoIt

SFTP Authentication using X.509 Certificates

See more SFTP Examples

Demonstrates how to authenticate with an SSH/SFTP server using an certificate's private key.

Note: See X.509v3 Certificates for SSH Authentication for more information.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oSftp = ObjCreate("Chilkat.SFtp")

Local $sHostname = "sftp.example.com"
Local $iPort = 22
$bSuccess = $oSftp.Connect($sHostname,$iPort)
If ($bSuccess <> True) Then
    ConsoleWrite($oSftp.LastErrorText & @CRLF)
    Exit
EndIf

; Load the cert + private key from a .pfx.
; Note: Chilkat provides methods for loading certs and private keys from many sources, including smart cards and USB tokens (HSM's)
$oCert = ObjCreate("Chilkat.Cert")
$bSuccess = $oCert.LoadPfxFile("qa_data/pfx/example.pfx","pfx_password")
If ($bSuccess <> True) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

; Get the cert's private key (as PEM) to be used for SSH authentication.
; (The public key is installed on the server.)
Local $sPrivKeyPem = $oCert.GetPrivateKeyPem()
If ($oCert.LastMethodSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

$oKey = ObjCreate("Chilkat.SshKey")

; Load a private key from a PEM string:
$bSuccess = $oKey.FromOpenSshPrivateKey($sPrivKeyPem)
If ($bSuccess <> True) Then
    ConsoleWrite($oKey.LastErrorText & @CRLF)
    Exit
EndIf

; Authenticate with the SSH server.
$bSuccess = $oSftp.AuthenticatePk("myLogin",$oKey)
If ($bSuccess <> True) Then
    ConsoleWrite($oSftp.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("Public-Key Authentication Successful!" & @CRLF)