Description
| Authenticates with the SSH server using public-key authentication. The corresponding public key must have been installed on the SSH server for the username. Authentication will succeed if the matching privateKey is provided.
Important: When reporting problems, please send the full contents of the LastErrorText property to support@tradium.nl.
Returns 1 for success, 0 for failure.
|
Example: Use PuTTY Key for SFTP Authentication
| Sub Main ' Load a .ppk PuTTY private key. Dim puttyKey As New ChilkatSshKey Dim ppkText As String ppkText = puttyKey.LoadText("qa_data/ppk/putty_private_secret.ppk") ' The ppkText contains this content: ' PuTTY-User-Key-File-2: ssh-rsa ' Encryption: aes256-cbc ' Comment: rsa-key-20170126 ' Public-Lines: 6 ' AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW ' 6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8l ' fa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4 ' zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8Vg ' bNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hc ' bOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w== ' Private-Lines: 14 ' MoaDbq0owouN/7Z9Pga0favDhM2bSEgMErJBxdDmNUXIVVcUoLiD/Ps1RA+BeBBX ' wxqKUt9PqLy/pnafPR/i2xjJiQtQ0CWkPxND16Gi1dqLzmbQYYl1ev4+LzuG0zNX ' HDGMvRiwagY7mY+F1tUjBYfOL6z8XHw4m40YcY1QorOO+0MMzAVT5Hkg8YyXW209 ' B/V/LRADFMVA2BlL39y11cb5ZpFStPH/waYUMY+2w1ZmJZ7dcRoMjuKmY+YE/tUx ' n9X3P0qTNSbw6e6sMG3Dhr1vfoJUQWApUliD6GpUiCeIvXBcVqG8Vsfq9XADsPl0 ' +nFAwjSZflywcB7/FwhGb7q5UmcJK06SzoMl7Og5e3g7NCs3yNNQIv+qCpDjhxrA ' hpT03mbipu7OXCZDeUwUhMGJAmYHE5iqm1rPCsSVbaMgpxhCWf01Cx4gLx3aMvn4 ' MdylA31GuL3wSxcWTslrOI8+449lZN/qZEnGEZkYTrnlu123jTqsAWMMtuHSz2Ig ' 6GA89oTdlppkNflhNH3OJ85kMUrc3p/ZBMdndz8jTDTljmJjHR5oNMoShFof115A ' nWjUHqBwCgcubLYyH3afDvBTOhtl0tJ9Oby0wJlOAGnCXiPSDbF/y7J7xml/PS9t ' XlSVNxtAY15NDO6Fp96sBVfKuJsfJ90PzdBom4ikIuf7sMwtElrHHLuYfcXJQYLp ' G5jBmqDgnirosVPEBIxlxFzz/HCRmdU+tsYg46gqI4R5UpKUe8WSaJoZkDGsrqhm ' e+1SJaBuafR4v2bx/bV414Hg7LGQosK2S3crxH4UgZl+g02vWznZfBH+9CmHvKDR ' AxfcKOTzsaILKJtQPV81lmJ45sARYMcB5jMiE4kBg56hiXouChsvKkm55WVcW1E+ ' Private-MAC: 17512c9f7582c1d9c3ae2b01b4d67a6b1dbd1d0e ' "secret" is the actual password for the above PPK. puttyKey.Password = "secret" Dim success As Long success = puttyKey.FromPuttyPrivateKey(ppkText) If (success <> 1) Then Debug.Print puttyKey.LastErrorText Exit Sub End If Dim sshHostname As String sshHostname = "sftp.example.com" Dim sshPort As Long sshPort = 22 ' Connect to an SSH/SFTP server success = sftp.Connect(sshHostname,sshPort) If (success <> 1) Then Debug.Print sftp.LastErrorText Exit Sub End If ' 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.) success = sftp.AuthenticatePk("mySshLogin",puttyKey) If (success <> 1) Then Debug.Print sftp.LastErrorText Exit Sub End If Debug.Print "OK, the connection and authentication with the SSH server is completed." ' This example is only to show the connection + authentication using a PuTTY private key... End Sub
|
Example: AWS Transfer for SFTP (Amazon S3)
| Sub Main ' Connect to the AWS SFTP server. ' Change the domain to your value. Dim domain As String domain = "s-123456df999999fab.server.transfer.eu-west-2.amazonaws.com" Dim port As Long port = 22 Dim success As Long success = sftp.Connect(domain,port) If (success = 0) Then Debug.Print sftp.LastErrorText Exit Sub End If ' Load your AWS SFTP private key PEM file.. Dim sshKey As New ChilkatSshKey Dim keyText As String keyText = sshKey.LoadText("qa_data/pem/s3_sftp_privateKey.pem") If (sshKey.LastMethodSuccess <> 1) Then Debug.Print sshKey.LastErrorText Exit Sub End If success = sshKey.FromOpenSshPrivateKey(keyText) If (success = 0) Then Debug.Print sshKey.LastErrorText Exit Sub End If ' Authenticate with the SSH server using the private key. success = sftp.AuthenticatePk("myUsername",sshKey) If (success = 0) Then Debug.Print sftp.LastErrorText Exit Sub End If ' After authenticating, the SFTP subsystem must be initialized: success = sftp.InitializeSftp() If (success = 0) Then Debug.Print sftp.LastErrorText Exit Sub End If ' Upload from the local file to the SSH server. ' Important -- the remote filepath is the 1st argument, ' the local filepath is the 2nd argument; Dim remoteFilePath As String remoteFilePath = "hamlet.xml" Dim localFilePath As String localFilePath = "c:/temp/hamlet.xml" success = sftp.UploadFileByName(remoteFilePath,localFilePath) If (success = 0) Then Debug.Print sftp.LastErrorText Exit Sub End If Debug.Print "Success." End Sub
|