WinSCP. NET сборка поддерживает чтение ключа только из файла.
Но вы можете создать файл ключа по вашему сценарию:
$privateKeyPath = New-TemporaryFile
Set-Content -Path $privateKeyPath "PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: ...
Public-Lines: 6
...
Private-Lines: 14
...
Private-MAC: ...
"
# Set up session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
...
SshPrivateKeyPath = $privateKeyPath
}
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Your code
}
finally
{
Remove-Item $privateKeyPath
$session.Dispose()
}