2011-12-19 37 views
2

我使用WinSCP将某些文件转移到另一个系统,但我遇到了一些问题。因为我打算在各种设备上使用这个C#程序,所以Keys不一样,所以我想打印出一个消息框或类似的东西给用户,让他们看到通常通过WinSCP.com看到的选项:C#WinSCP让用户选择接受或拒绝RSA密钥

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?

回答

2

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

winscp.StandardInput.WriteLine(open scp://name:[email protected]); 

但是,这只是为了获得从终端设备的关键,因为我可以从WinSCP赋予扫描输出,并发现恰好表明可爱密钥的消息。那么,现在知道我的设备的RSA密钥,我可以提示用户:'你是CPU不知道这个设备......连接吗?' [是/否/取消。如果他们说是,那么我可以明确地给WinSCP赋予我正在寻找的hostkey和连接,

winscp.StandardInput.WriteLine(open scp://name:[email protected] -hostkey: *****); 

就像我说这不是最漂亮的,我想用一个连接尝试这样做。但是,无论什么工作都做对了吗?我仍在研究这个更好的选择。