2017-02-07 11 views
0

Я пишу инструмент, который должен сначала подключить SSH, а затем открыть Telnet с учетными данными. В ручном режиме из Putty я могу подключить SSH, затем запустить команду;Установление Telnet через соединение SSH

telnet localhost 21000 

Это запрашивает у меня верительные грамоты. Но когда я делаю это в коде, ничего не происходит. Я попробовал MinimalisticTelnet, но он установил telnet с моей машины. Я не хочу этого. Подключение Telnet должно выполняться на SSH-соединении.

Это мой код;

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Renci.SshNet; 
using MinimalisticTelnet; 

namespace Ssh_Net 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      String host = "54.88.81.210"; 
      String username = "root"; 
      String password = "abcd1234"; 
      int port = 22; 

      ForwardedPortDynamic tunnelPort; 

      // Setup SSH with Credentials 
      ConnectionInfo ConnNfo = new ConnectionInfo(host, port, username, 

       new AuthenticationMethod[] { 

         /* Password based authentication */ 
         new PasswordAuthenticationMethod(username, password) 
       } 
      ); 


      // Instantly execute a shell command 

      using (var sshclient = new SshClient(ConnNfo)) 
      { 
       sshclient.Connect(); 
       Console.WriteLine("Connecting"); 

       if (sshclient.IsConnected) 
       { 
        try 
        { 
         Console.WriteLine(sshclient.RunCommand("telnet localhost 21000").Execute()); 

        } 
        catch (Exception e) 
        { 
         Console.Write(e.ToString()); 
        } 
       } 

       Console.ReadLine(); 
       sshclient.Disconnect(); 

      } 


     } 


    } 
} 

ответ

0

У меня такая же проблема. Это то, что я делаю

sshMaster = new SshClient(host, sshUserSSL, sshPwdSSL); 
sshMaster.Connect(); 
ShellStream shell = sshMaster.CreateShellStream("master", 80, 24, 800, 600, 1024); 
shell.WriteLine(" telnet localhost 21000"); 
shell.WriteLine(USERNAME); 
shell.WriteLine(PASSWORD); 

я могу читать телнет подсказку, с запросом имени пользователя и пароля, но когда я посылая имя пользователя и пароль, кажется, не работает

+0

Это уже, я видел. – nuriselcuk

1

После каждого shell.writeline, поставить

system.threading.sleep(1500) 

, чтобы дать ему время запросить имя пользователя и пароль.

 Смежные вопросы

  • Нет связанных вопросов^_^