我正在使用 SFTP 将文件传输到远程服务器,但我一直收到

SessionOptions.SshHostKeyFingerprint is not set.

我从 WinSCP WinSCP .NET Assembly and COM Library 引用了这个文档

我做错了什么?请参阅下面的脚本:

try 
{ 
    # Load WinSCP .NET assembly 
    Add-Type -Path "WinSCPnet.dll" 
 
    # Setup session options 
    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{ 
        Protocol = [WinSCP.Protocol]::Sftp 
        HostName = "psftp-nesam.ms.com" 
        UserName = "test" 
        Password = "MSR4sssssnd5" 
        SshHostKeyFingerprint = "ssh-rsa 1024 +3t0xkOMWqfA7IaH0itjW/w7FQN+EtVyLDMTXk+D300= 
    ssh-rsa 1024 23:6f:82:11:ec:b1:1a:82:95:1b:ed:7e:96:24:d0:11" 
    } 
 
    $session = New-Object WinSCP.Session 
 
    try 
    { 
        # Connect 
        $session.Open($sessionOptions) 
 
        # Upload files 
        $transferOptions = New-Object WinSCP.TransferOptions 
        $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary 
 
        $transferResult = 
            $session.PutFiles("E:\CMBPAID\BPAID0224_122700.csv", "/NESAMSCARIMED", $False, $transferOptions) 
 
        # Throw on any error 
        $transferResult.Check() 
 
        # Print results 
        foreach ($transfer in $transferResult.Transfers) 
        { 
            Write-Host "Upload of $($transfer.FileName) succeeded" 
        } 
    } 
    finally 
    { 
        # Disconnect, clean up 
        $session.Dispose() 
    } 
 
    exit 0 
} 
catch 
{ 
    Write-Host "Error: $($_.Exception.Message)" 
    exit 1 
} 

请您参考如下方法:

获取正确 key 的简单方法是运行 WinSCP 应用程序,登录到您要访问的 SFTP 服务器,然后从顶部的下拉菜单中选择“ session -> 生成 session URL/代码...”。这将显示一个漂亮的对话框,其中包含编写连接到此 session 的代码的不同方法。 “.NET 程序集代码”选项卡包含建立相同连接所需的所有代码,包括“SshHostKeyFingerprint”。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!