首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SharpSSH连接并从远程Linux机器获取响应(使用SharpSSH)

使用SharpSSH连接并从远程Linux机器获取响应(使用SharpSSH)
EN

Stack Overflow用户
提问于 2011-03-23 17:01:45
回答 1查看 4.6K关注 0票数 0

大家好,

我想要连接到远程Linux机器,并通过使用SSH在它们上执行命令来获得响应,请告诉我如何继续。到目前为止,我可以连接,但无法获得回应。

谢谢和问候,M.Channabasappa

我在这里粘贴我的代码

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tamir.SharpSsh;
using Tamir.SharpSsh.jsch;
using Tamir.Streams;
using Org.Mentalis.Security.Cryptography;

namespace ConsoleApplication7
{
    class SSHUtility
    {
        static void Main(string[] args)

            {
             SSHUtility sSHU = new SSHUtility();
            string command ="ls";
            try
            {
                JSch jsch = new JSch();

                jsch.setKnownHosts("a.z.y.x");
                Session session = jsch.getSession("robad", "d.z.y.x", 22);
                session.setPassword("robad");
                System.Collections.Hashtable hashConfig = new System.Collections.Hashtable();
                hashConfig.Add("StrictHostKeyChecking", "No");
                session.setConfig(hashConfig);
                session.getHostKey();


                //Channel channel = session.openChannel("ssh");
                //channel.connect();
                //ChannelSftp c = (ChannelSftp)channel;

                //c.exit();
                //new SSHUtility();
                //SshStream ssh = new SshStream("a.z.y.x", "robadaaa", "robadaaa");
                //ssh.Prompt = "ls";            //Remove terminal emulation characters            
                //ssh.RemoveTerminalEmulationCharacters = true;           

                //string response = ssh.ReadResponse();            
                //Console.Write(response);


                SshShell ssh = new SshShell("a.z.y.x", "robadaaaa", "robadaaaa");

                Console.WriteLine("Connecting.......");
                ssh.Connect();
                Console.WriteLine("OK");
                //Channel channel = session.openChannel("ssh");
                //channel.connect();
                ssh.Expect("the initial server prompt");
                ssh.WriteLine("ls");
                string resp = ssh.Expect("shell prompt");








                //ssh.Prompt = "#";
                //ssh.RemoveTerminalEmulationCharacters = true;
                //ssh.Write(command);
                //string response = ssh.ReadResponse();
                //Console.WriteLine("The response is : " + response);
            }
            catch (Exception ex)
            {
                Console.WriteLine("The Reason for Not Connecting is "+ex.ToString());
            }
            }

        }


        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 17:25:27

代码语言:javascript
复制
SshExec exec = new SshExec("host","eri_sn_admin");
            exec.Password = "pass";
            //if (input.IdentityFile != null) exec.AddIdentityFile(input.IdentityFile);

            Console.Write("Connecting...");
            exec.Connect();
            Console.WriteLine("OK");
            while (true)
            {
                Console.Write("Enter a command to execute ['Enter' to cancel]: ");
                string command = "ls";
                if (command == "") break;
                string output = exec.RunCommand(command);
                Console.WriteLine(output);
            }
            Console.Write("Disconnecting...");
            exec.Close();
            Console.WriteLine("OK");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5402840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档