【问题标题】:C# WinSCP give user option to accept or reject RSA KeyC# WinSCP 为用户提供接受或拒绝 RSA 密钥的选项
【发布时间】:2011-12-19 17:05:27
【问题描述】:

我正在使用 WinSCP 将一些文件传输到另一个系统,但我遇到了一些问题。因为我打算在各种设备上使用这个 C# 程序,所以键不一样,所以我想打印一个消息框或类似于用户的东西,给他们通常通过 WinSCP.com 看到的选项:

winscp> (U)pdate,(A)dd,Can(n)cel,(C)opy Key,(S)kip: Cancel

现在我正在使用winscp.StandardOutput.ReadLine() 向用户显示选项,并让他们选择winscp.StandardInput.WriteLine([user choice]) 的回报,但这似乎不起作用。我不断收到“主机密钥未验证!”。关于如何处理这个问题的任何建议?谢谢。

编辑: 我相信这与 WinSCP 不等待输入有关。我将 echo 选项更改为“on”,这样我就可以看到我的响应,并且我的响应发生在 WinSCP 已经拒绝连接之后。

我目前在 WinSCP 上的选项是:批量中止、确认开启、回显开启。

所以现在我猜想 WinSCP 是否会等待我来自 .exe 的命令?

【问题讨论】:

    标签: c# public-key winscp


    【解决方案1】:

    到目前为止,我已经通过“psudo”第一个连接使其工作。我知道这不是很漂亮,人们会(并且可能应该)因为我这样做而尖叫。首先,我尝试连接到终端设备,

    winscp.StandardInput.WriteLine(open scp://name:pass@xx.xx.xx.xx);
    

    但这只是为了从终端设备获取密钥,因为我可以扫描来自 winscp 的输出并找到一条恰好显示该可爱密钥的消息。那么,现在知道了我的设备的 RSA 密钥,我可以提示用户:“你的 CPU 不知道这个设备......仍然连接吗?” [是/否/取消]。如果他们说是,那么我可以明确地为 winscp 提供我正在寻找并连接的主机密钥,

    winscp.StandardInput.WriteLine(open scp://name:pass@xx.xx.xx.xx -hostkey: *****);
    

    就像我说的那样,这不是最漂亮的,我想通过一次连接尝试来做到这一点。但是,无论怎样才能正确地完成工作?我仍在寻找更好的选择。

    【讨论】:

      猜你喜欢
      • 2014-01-14
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      相关资源
      最近更新 更多