2

一部のファイルを別のシステムに転送するために 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 と関係があると思います。エコー オプションを「オン」に変更したので、応答を確認でき、WinSCP が接続を拒否した後に応答が発生しました。

WinSCP の現在のオプションは次のとおりです: バッチ中止、確認オン、エコーオン。

それで、とにかく WinSCP が .exe からのコマンドを待つことができると思いますか?

4

1 に答える 1

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: *****);

私が言ったように、それは最もきれいではありません、そして私はそれを単一の接続の試みでやりたいです。しかし、仕事を正しく行うために何がありますか?私はまだより良いオプションのためにこれを調べています。

于 2011-12-20T16:26:58.907 に答える