web-dev-qa-db-ja.com

C#簡単なSSHコマンドを送信

私は若い学生で、今週の宿題を受け取りました。 SSHサーバーに接続して、commdmd "etc/init.d/networking restart"を送信できるプログラムを作成する必要があるため、私にとってはかなり困難です。

このアプリケーションをC#でプログラミングする必要がありますが、かなり初心者です(学校のレッスンから学んだことがあります)。また、GUIを作成する必要があります。

C#の基本を理解しています(ループ、ifなど...)。

GUI、メニュー、ボタン、ログリストボックスはすでに作成しています。 GUI = 3テキストボックス(IP、ユーザー名、パスワード)および接続するボタン。

screenshot of ui

screenshot of code

Microsoft Vistual Studioでコーディングしています。

私の質問は、サーバーへのSSH接続を確立するにはどうすればよいですか?

45
lucbas

少し前にプロジェクトで SSH.Net を使用しましたが、非常に満足しています。また、使用方法に関する多くのサンプルを含む優れたドキュメントが付属しています。

元のパッケージWebサイトは、ドキュメントを含めてまだ here にあります(現在GitHubでは利用できません)。

あなたの場合、コードは次のようになります。

using (var client = new SshClient("hostnameOrIp", "username", "password"))
{
    client.Connect();
    client.RunCommand("etc/init.d/networking restart");
    client.Disconnect();
}
88
SshClient cSSH = new SshClient("192.168.10.144", 22, "root", "pacaritambo");
cSSH.Connect();
SshCommand x = cSSH.RunCommand("exec \"/var/lib/asterisk/bin/retrieve_conf\"");
cSSH.Disconnect();
cSSH.Dispose();

//SSH.Netを使用

7
Mario Palacios
4
NickD