プロセスを開始し、それを利用plink
して、ローカル ネットワークにある ssh へのリバース トンネルを作成しています。
サーバーに正常に接続できますが、コンソール ウィンドウに完全なコンテンツが表示されません。私の目標は、すべてが表示されるのを待ってから、 を使用してパスワードを入力して続行することですprocess.standardInput
。
コンソール ウィンドウでこれを受け取る必要があります。
Using username "dayan".
Passphrase for key "rsa-key-20130516":
しかし、私は最初の行だけを受け取ります:
Using username "dayan".
Enter キーを押すと、「正しくないパスワード エラー」が表示されますが、「キー rsa-key のパスフレーズ....」は表示されません。
また、正しいパスワードを入力したため、コンソールは空白のままでしたが、SSH サーバーを保持する Linux シェルでwho
コマンドを実行したところ、正常に接続されていることに気付きました。
ここで何が問題になる可能性がありますか?
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.FileName = Path.Combine(BinPath, "plink.exe");
processInfo.Arguments =
String.Format(@" {0} {1}:127.0.0.1:{2} -i {3} -l {4} {5}",
remoteOption, LocalPort, TargetPort, KeyPath, username, TargetIp);
processInfo.UseShellExecute = false;
processInfo.CreateNoWindow = false;
processInfo.RedirectStandardOutput = true;
processInfo.RedirectStandardInput = true;
processInfo.RedirectStandardError = true;
Process process = Process.Start(processInfo);
StreamReader output = process.StandardOutput;
while (!output.EndOfStream) {
string s = output.ReadLine();
if (s != "")
Console.WriteLine(s);
}
process.WaitForExit();
process.Close();