C#WinSCP为用户提供接受或拒绝RSA密钥的选项

时间:2011-12-19 17:05:28

标签: c# public-key winscp

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

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

现在我使用winscp.StandardOutput.ReadLine()向用户显示选项,并让他们选择winscp.StandardInput.WriteLine([user choice])返回的内容,但这个dosn似乎无效。我一直在&#34;主机密钥未经过验证!&#34;。关于如何处理这个问题的任何建议?感谢。

编辑: 我相信这与WinSCP没有等待输入有关。我将echo选项更改为&#39; on&#39;所以我可以看到我的响应,并且在WinSCP已经拒绝连接后我的响应发生了。

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

所以现在我想WinSCP无论如何都要等待来自.exe的命令

1 个答案:

答案 0 :(得分:2)

到目前为止,我已经通过“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: *****);

就像我说它不是最漂亮的,我想通过一次连接尝试来做到这一点。但无论做什么工作都做对了?我仍然在寻找更好的选择。