Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loCert
LOCAL loPrivKey
LOCAL lcPrivKeyPem
LOCAL loSshKey
LOCAL loSftp
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loCert = CreateObject('Chilkat.Cert')
* Load the certificate from the Windows certificate store
lnSuccess = loCert.LoadByCommonName("my_cert_common_name")
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loCert
CANCEL
ENDIF
* Get the private key.
loPrivKey = CreateObject('Chilkat.PrivateKey')
lnSuccess = loCert.GetPrivateKey(loPrivKey)
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loCert
RELEASE loPrivKey
CANCEL
ENDIF
lcPrivKeyPem = loPrivKey.GetPkcs8Pem()
IF (loPrivKey.LastMethodSuccess = 0) THEN
? loPrivKey.LastErrorText
RELEASE loCert
RELEASE loPrivKey
CANCEL
ENDIF
loSshKey = CreateObject('Chilkat.SshKey')
lnSuccess = loSshKey.FromOpenSshPrivateKey(lcPrivKeyPem)
IF (lnSuccess = 0) THEN
? loSshKey.LastErrorText
RELEASE loCert
RELEASE loPrivKey
RELEASE loSshKey
CANCEL
ENDIF
* Connect to an SSH/SFTP server
loSftp = CreateObject('Chilkat.SFtp')
lnSuccess = loSftp.Connect("sftp.example.com",22)
IF (lnSuccess = 0) THEN
? loSftp.LastErrorText
RELEASE loCert
RELEASE loPrivKey
RELEASE loSshKey
RELEASE loSftp
CANCEL
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.)
lnSuccess = loSftp.AuthenticatePk("mySshLogin",loSshKey)
IF (lnSuccess = 0) THEN
? loSftp.LastErrorText
RELEASE loCert
RELEASE loPrivKey
RELEASE loSshKey
RELEASE loSftp
CANCEL
ENDIF
? "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...
RELEASE loCert
RELEASE loPrivKey
RELEASE loSshKey
RELEASE loSftp