1

私はmysqlクライアントを使用しています

using MySql.Data.MySqlClient;

SSH トンネルで接続を実行するにはどうすればよいですか?


私はssh接続の使用を作成しますSharpSsh

SshExec exec = new SshExec("host", "user");
exec.Password = "pass";

Console.Write("Connect...");
exec.Connect(22);
Console.WriteLine("OK");
string output = exec.RunCommand("mysql -p pass -u user db -h host;");
if (output == "")
   Console.WriteLine("error");
Console.WriteLine(output);

しかし、クライアントを介してすぐに ssh 接続を確立できるコードを大量に作成する必要があるのはなぜでしょうか?

助けてください :)

4

1 に答える 1

0

SSH 経由でシェルを開く代わりに、ポート転送を使用する必要があります。SharpSSH ホームページのポート転送の例に従ってください。mysqlリモートサーバーでコマンドを実行する必要はまったくありません。

この例のマジック ラインは次のとおりです。

session.setPortForwardingL(lport, rhost, rport);

lportローカル マシンのポートから のポートへのトンネルを作成しrportますrhost。トンネルが起動したら、localhostlportMySqlClientを使用して を接続文字列に接続するだけです。ローカル マシンに接続している場合でも、接続はトンネル経由でリモート エンドに転送されます。

于 2012-08-07T17:43:40.497 に答える