9

私が書いている.NETアプリケーションにSSHポートフォワーディングを組み込みたいと思っています。

私はsharpSSHを使用してみましたが、ユーザーは毎回パスワードを入力する必要があり、それは望ましくありません。パスワードの保存を処理します。

Granadosをダウンロードしましたが、基本的にドキュメントはありません。Granadosまたはその他の.NET用の無料SSHライブラリを使用してポート転送を実行するにはどうすればよいですか?

4

5 に答える 5

17

SSH.NET ライブラリは、これを実現する簡単な方法です。

using (var client = new SshClient("client.net", "user", "password"))
{
    client.Connect();

    var port = new ForwardedPortLocal("localhost", 10000, "remote.net", 80);
    client.AddForwardedPort(port);

    port.Exception += delegate(object sender, ExceptionEventArgs e)
    {
        Console.WriteLine(e.Exception.ToString());
    };
    port.Start();

    // ... hold the port open ... //

    port.Stop();
    client.Disconnect();
}
于 2012-06-15T19:38:53.750 に答える
5

リモートで SSH サーバーに DSA キーをセットアップする場合、ユーザーのキーを保存し (これは 1 回限りの作業として行います)、許可されたユーザーとしてサーバーにキーを保存できます。

于 2010-05-24T21:17:15.183 に答える
4

これらの C# の代替はすべて、JCraft の Java Jschから派生したものです。

  1. SharpSSH (2010年1月より休止中) /作者のページ/記事
  2. DotNetSSH (2010 年 6 月以降非アクティブ)
  3. SSH.NET ライブラリ(2012 年 1 月現在有効)
  4. Nsch (Jsch Feb 2012 から生成/更新)

Granados製品ページは、 PortForwarding プラグインを含むPoderosaプロジェクトにリンクしています。そこにあるchannel.csファイルとconnectionmanager.csファイルのソース コードは、ポート フォワーディングを実装しているようです。推奨事項については、この回答を参照してください。

Nschは、MonoDevelop のNGit内に隠された宝石のようです。Jsch からほとんど自動的に変換されます(背景情報)。

スマトラ PDF のKrzysztof Kowalczykによる 2011 年 2 月のさらなる調査。

于 2012-01-19T19:58:58.323 に答える
0

これは、 SharpSSHを使用して、これらのいずれもparameters: (完全に自動化されたポート転送)を促進しない方法です。

(user,host,Lport,Rhost,Rport,DSA-key-confirmation,Password)

    Dim JJ As Tamir.SharpSsh.jsch.JSch = New Tamir.SharpSsh.jsch.JSch()
    Dim sess As Tamir.SharpSsh.jsch.Session = JJ.getSession("user", "remoteadd.dydns.com")
    Dim conf As Hashtable = New Hashtable()
    conf.Add("StrictHostKeyChecking", "no")
    sess.setConfig(conf)
    sess.setPassword("password")
    sess.connect()
    sess.setPortForwardingR(45, "127.0.0.1", 256)
于 2014-03-11T11:18:48.670 に答える