1

プロセスを開始し、それを利用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();
4

1 に答える 1