![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Tcl) SSH Public Key AuthenticationDemonstrates how to authenticate with an SSH server using public key authentication.
load ./chilkat.dll # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set ssh [new_CkSsh] # Set some timeouts, in milliseconds: CkSsh_put_ConnectTimeoutMs $ssh 5000 CkSsh_put_IdleTimeoutMs $ssh 15000 # Connect to the SSH server. # The standard SSH port = 22 # The hostname may be a hostname or IP address. set hostname "sftp.example.com" set port 22 set success [CkSsh_Connect $ssh $hostname $port] if {$success != 1} then { puts [CkSsh_lastErrorText $ssh] delete_CkSsh $ssh exit } set key [new_CkSshKey] # Read the PEM file into a string variable: # (This does not load the PEM file into the key. The LoadText # method is a convenience method for loading the full contents of ANY text # file into a string variable.) set privKey [CkSshKey_loadText $key "myPrivateKey.pem"] if {[CkSshKey_get_LastMethodSuccess $key] != 1} then { puts [CkSshKey_lastErrorText $key] delete_CkSsh $ssh delete_CkSshKey $key exit } # Load a private key from a PEM string: # (Private keys may be loaded from OpenSSH and Putty formats. # Both encrypted and unencrypted private key file formats # are supported. This example loads an unencrypted private # key in OpenSSH format. PuTTY keys typically use the .ppk # file extension, while OpenSSH keys use the PEM format. # (For PuTTY keys, call FromPuttyPrivateKey instead.) set success [CkSshKey_FromOpenSshPrivateKey $key $privKey] if {$success != 1} then { puts [CkSshKey_lastErrorText $key] delete_CkSsh $ssh delete_CkSshKey $key exit } # Authenticate with the SSH server using the login and # private key. (The corresponding public key should've # been installed on the SSH server beforehand.) set success [CkSsh_AuthenticatePk $ssh "myLogin" $key] if {$success != 1} then { puts [CkSsh_lastErrorText $ssh] delete_CkSsh $ssh delete_CkSshKey $key exit } puts [CkSsh_lastErrorText $ssh] puts "Public-Key Authentication Successful!" delete_CkSsh $ssh delete_CkSshKey $key |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.