AutoIt
AutoIt
SFTP Public-Key Authentication (id_ed25519)
See more SFTP Examples
Demonstrates how to authenticate with an SSH/SFTP server using publickey authentication with an Ed25519 private key (id_ed25519).Chilkat AutoIt Downloads
Local $bSuccess = False
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oKey = ObjCreate("Chilkat.SshKey")
; The id_ed25519 file should contain something like this:
; (You can open it in a text editor..)
; -----BEGIN OPENSSH PRIVATE KEY-----
; b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDIeK9+Xw
; 6Do9gnhtrJu5iJAAAAZAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIMh/Ge7fjQCssmVd
; BqjYZbRAI0pY8IrnB6J1yLetq34OAAAAoMVP7cvy4hTiAINA3I4v55OonkpKza8mzfUW18
; RDQeYL3ovCVaAYOGcCpf/SW3QiY6tnXq+5WDEfJ7Z/kQ0nl2+1wSLOytxpyO+IY0rRtLrX
; 6e/agR4nbZpt/MFG6xqcNASbtDgg+9IWGvDrtXOLFofx07/zml+UjFL0tXRpCjOxeqKyXH
; t8SRgdT97d9/bYPwapaXY+b2DVVy5/LVx4Sq8=
; -----END OPENSSH PRIVATE KEY-----
Local $sPrivKeyText = $oKey.LoadText("c:/temp/id_ed25519")
If ($oKey.LastMethodSuccess <> True) Then
ConsoleWrite($oKey.LastErrorText & @CRLF)
Exit
EndIf
; If your private key was saved encrypted, then you'll need the password.
; In this example, the password "blahblah" is valid for the above key -- which is a real Ed25519 key generated/saved from puttygen.
$oKey.Password = "blahblah"
$bSuccess = $oKey.FromOpenSshPrivateKey($sPrivKeyText)
If ($bSuccess <> True) Then
ConsoleWrite($oKey.LastErrorText & @CRLF)
Exit
EndIf
$oSftp = ObjCreate("Chilkat.SFtp")
; Set some timeouts, in milliseconds:
$oSftp.ConnectTimeoutMs = 5000
$oSftp.IdleTimeoutMs = 15000
Local $sHostname = "sftp.example.com"
Local $iPort = 22
$bSuccess = $oSftp.Connect($sHostname,$iPort)
If ($bSuccess <> True) Then
ConsoleWrite($oSftp.LastErrorText & @CRLF)
Exit
EndIf
; Authenticate with the SSH server. Chilkat SFTP supports
; both password-based authenication as well as public-key
; authentication.
$bSuccess = $oSftp.AuthenticatePk("myLogin",$oKey)
If ($bSuccess <> True) Then
ConsoleWrite($oSftp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite($oSftp.LastErrorText & @CRLF)
ConsoleWrite("Public-Key Authentication Successful!" & @CRLF)
; Now go do whatever you're app needs to do...