c# WinSCP给用户选择接受或拒绝RSA密钥
本文关键字:拒绝 RSA 密钥 WinSCP 给用户 选择 | 更新日期: 2023-09-27 18:18:13
我正在使用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上的选项是:批处理中止、确认打开、echo打开。
所以现在我想有什么方法可以让WinSCP等待我的命令从。exe?
到目前为止,我已经通过"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: *****);
就像我说的,它不是最漂亮的,我想用一次连接尝试来完成它。但只要能把工作做好呢?我还在寻找一个更好的选择。