Visual FoxPro
Visual FoxPro
SSH Authentication using X.509 Certificates
See more SSH 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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSsh
LOCAL lcHostname
LOCAL lnPort
LOCAL loCert
LOCAL lcPrivKeyPem
LOCAL loKey
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loSsh = CreateObject('Chilkat.Ssh')
lcHostname = "ssh.example.com"
lnPort = 22
lnSuccess = loSsh.Connect(lcHostname,lnPort)
IF (lnSuccess <> 1) THEN
? loSsh.LastErrorText
RELEASE loSsh
CANCEL
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)
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadPfxFile("qa_data/pfx/example.pfx","pfx_password")
IF (lnSuccess <> 1) THEN
? loCert.LastErrorText
RELEASE loSsh
RELEASE loCert
CANCEL
ENDIF
* Get the cert's private key (as PEM) to be used for SSH authentication.
* (The public key is installed on the server.)
lcPrivKeyPem = loCert.GetPrivateKeyPem()
IF (loCert.LastMethodSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loSsh
RELEASE loCert
CANCEL
ENDIF
loKey = CreateObject('Chilkat.SshKey')
* Load a private key from a PEM string:
lnSuccess = loKey.FromOpenSshPrivateKey(lcPrivKeyPem)
IF (lnSuccess <> 1) THEN
? loKey.LastErrorText
RELEASE loSsh
RELEASE loCert
RELEASE loKey
CANCEL
ENDIF
* Authenticate with the SSH server.
lnSuccess = loSsh.AuthenticatePk("myLogin",loKey)
IF (lnSuccess <> 1) THEN
? loSsh.LastErrorText
RELEASE loSsh
RELEASE loCert
RELEASE loKey
CANCEL
ENDIF
? "Public-Key Authentication Successful!"
RELEASE loSsh
RELEASE loCert
RELEASE loKey