Установка Telnet через SSH-соединение

Я пишу инструмент, который должен сначала подключиться по SSH, а затем открыть Telnet с учетными данными. Вручную из Putty я могу подключить 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();

            }


        }


    }
}

person nuriselcuk    schedule 07.02.2017    source источник


Ответы (2)


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

system.threading.sleep(1500) 

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

person LordElderHamster    schedule 11.09.2017

У меня такая же проблема. Это то чем я занимаюсь

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);

Я могу прочитать приглашение telnet с запросом имени пользователя и пароля, но когда я отправляю имя пользователя и пароль, кажется, что это не работает

person DanB    schedule 03.03.2017