Я пытаюсь использовать SSH.NET создать туннель от localhost:3306
к порту 3306 на удаленной машине:Создание пересылаемой порта в пределах SSH туннеля
PrivateKeyFile file = new PrivateKeyFile(@" .. path to private key .. ");
using (var client = new SshClient(" .. remote server .. ", "ubuntu", file))
{
client.Connect();
var port = new ForwardedPortLocal(3306, "localhost", 3306);
client.AddForwardedPort(port);
port.Start();
// breakpoint set within the code here
client.Disconnect();
}
Когда точка останова, client.IsConnected
возвращается true
, но telnet localhost 3306
не подключается. Если я создаю соединение с помощью Putty вместо этого и настрою там тот же туннель, он будет успешным. Что я пропустил?
Вы получаете специальное предупреждение для приложения telnet? Он закрывается? Данные двоичного соединения могут не отображаться ... –
Он зависает, не удается подключиться. При использовании Putty я получаю строку данных. –
Попробуйте [эта ссылка] (http://sshnet.codeplex.com/discussions/348423): Я думаю, что отключение клиента - проблема. И если вы нарушаете «Start» и «Disconnect», вы также можете остановить пересылку. –