Go
Go
SSH Authentication using an SSH Certificate
See more SSH Examples
Demonstrates how to 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())
ssh := chilkat.NewSsh()
hostname := "ssh.example.com"
port := 22
success = ssh.Connect(hostname,port)
if success != true {
fmt.Println(ssh.LastErrorText())
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
ssh.DisposeSsh()
return
}
success = ssh.AuthenticatePk("myLogin",key)
if success != true {
fmt.Println(ssh.LastErrorText())
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
ssh.DisposeSsh()
return
}
fmt.Println("Public-Key Authentication using an SSH Certificate was Successful!")
sbSshCert.DisposeStringBuilder()
sbPrivKey.DisposeStringBuilder()
key.DisposeSshKey()
ssh.DisposeSsh()