Можете ли вы встроить закрытый ключ в сценарий PowerShell WinSCP? - PullRequest
2 голосов
/ 12 февраля 2020

Можете ли вы встроить закрытый ключ в сценарий PowerShell WinSCP вместо вызова файла .ppk? Может быть как то так?

# Load WinSCP .NET assembly
Add-Type -Path "WinSCPnet.dll"

# Set up session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
    Protocol = [WinSCP.Protocol]::Scp
    HostName = "domain.com"
    UserName = "username"
    SshHostKeyFingerprint = "ssh-rsa 2048 38741934871934871293471293487"
    SecurePrivateKeyPassphrase = "AAABAHH1......................"
}

$session = New-Object WinSCP.Session

try
{
    # Connect
    $session.Open($sessionOptions)

    # Your code
}
finally
{
    $session.Dispose()
}

1 Ответ

1 голос
/ 12 февраля 2020

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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...