AutoIt
AutoIt
SFTP use Cert's Private Key from PFX (.pfx/.p12)
See more SFTP Examples
Demonstrates how to use the private key associated with a certificate from a .pfx/.p12 file.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oCert = ObjCreate("Chilkat.Cert")
Local $sPfxFilepath = "qa_data/pfx/my.pfx"
Local $sPfxPassword = "secret"
; A PFX typically contains certificates in the chain of authentication.
; The Chilkat cert object will choose the certificate w/
; private key farthest from the root authority cert.
; To access all the certificates in a PFX, use the
; Chilkat certificate store object instead.
$bSuccess = $oCert.LoadPfxFile($sPfxFilepath,$sPfxPassword)
If ($bSuccess = False) Then
ConsoleWrite($oCert.LastErrorText & @CRLF)
Exit
EndIf
; Get the private key.
$oPrivKey = ObjCreate("Chilkat.PrivateKey")
$bSuccess = $oCert.GetPrivateKey($oPrivKey)
If ($bSuccess = False) Then
ConsoleWrite($oCert.LastErrorText & @CRLF)
Exit
EndIf
Local $sPrivKeyPem = $oPrivKey.GetPkcs8Pem()
If ($oPrivKey.LastMethodSuccess = False) Then
ConsoleWrite($oPrivKey.LastErrorText & @CRLF)
Exit
EndIf
$oSshKey = ObjCreate("Chilkat.SshKey")
$bSuccess = $oSshKey.FromOpenSshPrivateKey($sPrivKeyPem)
If ($bSuccess = False) Then
ConsoleWrite($oSshKey.LastErrorText & @CRLF)
Exit
EndIf
; Connect to an SSH/SFTP server
$oSftp = ObjCreate("Chilkat.SFtp")
$bSuccess = $oSftp.Connect("sftp.example.com",22)
If ($bSuccess = False) Then
ConsoleWrite($oSftp.LastErrorText & @CRLF)
Exit
EndIf
; 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.)
$bSuccess = $oSftp.AuthenticatePk("mySshLogin",$oSshKey)
If ($bSuccess = False) Then
ConsoleWrite($oSftp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("OK, the connection and authentication with the SSH server is completed." & @CRLF)
; This example is only to show the connection + authentication using a private key associated with a certificate in the Windows certificate store...