2011-12-19 137 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: *****); 

就像我說這不是最漂亮的,我想用一個連接嘗試這樣做。但是,無論什麼工作都做對了嗎?我仍在研究這個更好的選擇。