|  | 
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
| (PowerShell) SSH HSM Public Key AuthenticationDemonstrates how to authenticate with an SSH server using public key authentication using an HSM (USB token or smartcard). 
 Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll" # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Note: Chilkat's PKCS11 implementation runs on Windows, Linux, MacOs, and other supported operating systems. $pkcs11 = New-Object Chilkat.Pkcs11 # This would be a path to a .dylib on MacOS, or a path to a .so shared lib on Linux. $pkcs11.SharedLibPath = "C:/Program Files (x86)/Gemalto/IDGo 800 PKCS#11/IDPrimePKCS1164.dll" $pin = "0000" $userType = 1 # Establish a PKCS11 logged-on session using the driver (.so, .dylib, or .dll) as specified in the SharedLibPath above. $success = $pkcs11.QuickSession($userType,$pin) if ($success -eq $false) { $($pkcs11.LastErrorText) exit } # Set PKCS11 attributes to find our desired private key object. $json = New-Object Chilkat.JsonObject $json.UpdateString("class","private_key") $json.UpdateString("label","MySshKey") # Get the PKCS11 handle to the private key located on the HSM. $priv_handle = $pkcs11.FindObject($json) # Get the PKCS11 handle to the corresponding public key located on the HSM. $json.UpdateString("class","public_key") $pub_handle = $pkcs11.FindObject($json) $key = New-Object Chilkat.SshKey # The key type can be "rsa" or "ec" $keyType = "rsa" $success = $key.UsePkcs11($pkcs11,$priv_handle,$pub_handle,$keyType) if ($success -eq $false) { $($key.LastErrorText) exit } $ssh = New-Object Chilkat.Ssh $success = $ssh.Connect("example.com",22) if ($success -ne $true) { $($ssh.LastErrorText) exit } # Authenticate with the SSH server using the login and # HSM private key. (The corresponding public key should've # been installed on the SSH server beforehand.) $success = $ssh.AuthenticatePk("myLogin",$key) if ($success -ne $true) { $($ssh.LastErrorText) exit } $("Public-Key Authentication Successful!") | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.