【发布时间】:2020-02-01 01:53:20
【问题描述】:
我正在尝试通过 SSH 隧道连接到远程服务器上的 Postgres 数据库。我正在使用 SSH.NET 和 Npgsql 库。这是我的示例代码:
using (var client = new SshClient("210.130.90.110", "root", "pasword"))
{
client.Connect();
if (!client.IsConnected)
{
// Display error
Console.WriteLine("Client not connected!");
}
else
{
Console.WriteLine("Client connected!");
}
var port = new ForwardedPortLocal("127.0.0.1", 15432, "210.130.90.110", 5432);
client.AddForwardedPort(port);
port.Start();
using (var conn = new NpgsqlConnection("Server=127.0.0.1;Database=dbname;Port=15432;User Id=dbuser;Password=dbpassword;"))
{
conn.Open();
}
port.Stop();
client.Disconnect();
}
代码执行后我得到:
Npgsql.NpgsqlException: '从流中读取时出现异常' EndOfStreamException: 试图读取流的末尾。
我可以使用 DBeaver 连接到数据库。
【问题讨论】:
标签: c# ssh npgsql ssh-tunnel ssh.net