2011-12-15 22 views
3

私のC#アプリケーションからリモートホスト上でUNIXコマンドを実行しようとしています。C#でTcpClientを使用してリモートSSHでunixコマンドを実行する方法

私はこれを含むインターネットを介してさまざまな投稿を見ましたが、SmartSshのようなさまざまなライブラリを使用しています。コマンドラインコマンドを使用するものもあります。

私は第三者のライブラリを使用したくありません。

ここでは、MSDNに表示されている例のTcpClientクラスを使用しようとしました。ホスト名をuser @ servername、ポートのように渡します。私はこのコードを実行すると、それはイエスその後、どのように私はそれを提供しない場合は私のサーバー/ホストは、ユーザーのパスワードを期待しているので?

SocketException (0x80004005): No such host is known 
at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port) 

がそれであるExceptionをtrows

+0

このような既存の質問を検索しようとしましたが、右のものに。これが重複している場合は、正しい場所にリダイレクトしてください。ありがとう。 – Maheep

+3

ソケットは接続に関するものだけで、電話で人に電話をかけるものと見ることができます。ソケットはあなたが他の人との接続を持っていることを確認しますが、通信するためにはまだ言語(プロトコル)が必要です。電話では、それは共通の言語です。 UNIXコマンドを実行するには、あなたとターゲットの両方が理解できる言語も必要です。これらのプロトコルの1つはSSHポート22です.SSHも認証を定義していますので、SSHプロトコル以上を実装する必要があります。第三者のライブラリを使用してください。 – Polity

+0

@Polity:私のことをよく説明してくれてありがとう行方不明であり、もっとも単純な言葉でもあります。 – Maheep

答えて

2

ソケットは接続に関してのみ使用され、電話で相手に電話をかけるものとして表示されます。ソケットはあなたが他の人との接続を持っていることを確認しますが、通信するためにはまだ言語(プロトコル)が必要です。電話では、それは共通の言語です。 UNIXコマンドを実行するには、あなたとターゲットの両方が理解できる言語も必要です。これらのプロトコルの1つはSSH、ポート22です.SSHも認証を定義しているので、SSHプロトコル以上の実装が必要です。第三者のライブラリを使用してください。

+0

あなたはこの仕事のための非常に軽い重量のネットライブラリをお勧めしますか?非常にシンプルなUNIXコマンドを実行したいだけなので、非常に大きなツールがすべて必要なわけではありません。 – Maheep

+1

ちょうどGoogleの周りのgoogle、私はhttp://www.codeproject.com/KB/IP/sharpssh.aspxとhttp://www.routrek.co.jp/en/product/varaterm/granados.htmlの両方を無料で見つけた簡単です。 – Polity

関連する問題