2
私は何をしようとしているのですか?SharpSSHを使用してadditonal入力を促すlinuxコマンドを実行するには?
LinuxマシンにSSHセッションをセットアップし、 "ls"やcpのようなコマンドを発行する必要があります。
HERESにスニペット SshStream ssh = new SshStream ("myhost","root","pass");
ssh.Prompt ="#";
ssh.RemoveTerminalEmulationCharacters = true;
byte[] byt = System.Text.Encoding.ASCII.GetBytes("rm vivek");
Array.Resize (ref byt,byt.Length +3);
byt[byt.Length-1]=(byte)'\r';
byt[byt.Length - 2] = (byte)'y';
byt[byt.Length - 3] = (byte)'\r';
ssh.Write(byt);
Console.WriteLine(ssh.ReadResponse());
事がある"のLS" のようなコマンドは、あなたがそれをタイプシンプルであり、それは出力が得られますが、
のようなaddtionalのacknowledementを必要とRMなどのコマンド"y"
上記のコードからわかるように、コードは基本的に
のようなバイトシーケンスを生成しますのrmのVivek [ENTER] Y [ENTER]
しかし、それは仕事をdoesntの、それはまだ
[[email protected] ~]# rm vivek
rm: remove regular file `vivek'?
で入力するためにwatingているかのようにそれが私がここに間違って何をしているのですか?
質問は明らかです。
P.S私は同じ結果をSSHExecサンプルでもう一度試しました。
素晴らしいアイデアを! +1しかし、それは "rm"の問題を解決するだけです。私はルータを設定していて、どこにコマンドにはこれらのオプションがないのでしょうか...私の根本的な問題です。私はちょうど私の問題を説明している –
あなたはダイアログとしてそれを考える必要があります。あなたは何かを送ったり、何かを期待したり、何か他のものを送ったりします。 – Diego
試してみましょう! –