Go
Go
SFTP Authentication using an SSH Certificate
See more SFTP Examples
Demonstrates how to SFTP authenticate using an SSH certificate.Chilkat Go Downloads
success := false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
sbSshCert := chilkat.NewStringBuilder()
success = sbSshCert.LoadFile("qa_data/sshCert/user_ecdsa_key-cert.pub","utf-8")
if success == false {
fmt.Println("Failed to load user_ecdsa_key-cert.pub")
sbSshCert.DisposeStringBuilder()
return
}
sbPrivKey := chilkat.NewStringBuilder()
success = sbPrivKey.LoadFile("qa_data/sshKeys/user_ecdsa_key","utf-8")
if success == false {
fmt.Println("Failed to load user_ecdsa_key")
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
return
}
key := chilkat.NewSshKey()
// Provide the password if the user_ecdsa_key is stored in an encrypted format.
key.SetPassword("secret")
success = key.FromOpenSshPrivateKey(*sbPrivKey.GetAsString())
if success == false {
fmt.Println(key.LastErrorText())
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
return
}
// 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 := chilkat.NewSFtp()
hostname := "sftp.example.com"
port := 22
success = sftp.Connect(hostname,port)
if success != true {
fmt.Println(sftp.LastErrorText())
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
sftp.DisposeSFtp()
return
}
success = sftp.AuthenticatePk("myLogin",key)
if success != true {
fmt.Println(sftp.LastErrorText())
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
sftp.DisposeSFtp()
return
}
fmt.Println("Public-Key Authentication using an SSH Certificate was Successful!")
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
sftp.DisposeSFtp()