如何在C#中的SSH服务器上运行命令?

如何在C#中的SSH服务器上运行命令?,第1张

概述我需要使用C#代码执行此 *** 作: >在后台打开putty.exe(这就像一个cmd窗口) >使用其IP地址登录远程主机 >输入用户名和密码 >一个接一个地执行几个命令. >运行另一个获得响应的命令,告诉我在成功执行之前运行的命令 所以我试着这样做: ProcessStartInfo proc = new ProcessStartInfo() { FileName = @"C:\putty 我需要使用C#代码执行此 *** 作:

>在后台打开putty.exe(这就像一个cmd窗口)
>使用其IP地址登录远程主机
>输入用户名和密码
>一个接一个地执行几个命令.
>运行另一个获得响应的命令,告诉我在成功执行之前运行的命令

所以我试着这样做:

processstartinfo proc = new processstartinfo() {     filename = @"C:\putty.exe",UseShellExecute = true,//I think I need to use shell execute ?     RedirectStandardinput = false,RedirectStandardOutput = false,Arguments = string.Format("-ssh {0}@{1} 22 -pw {2}",username,hostIP,password)     ... //How do I send commands to be executed here ?};Process.Start(proc);
解决方法 你可以尝试 https://sshnet.codeplex.com/.
有了它,你根本不需要腻子或窗户.
你也可以得到答案.
它会看起来……像这样.
SshClIEnt sshclIEnt = new SshClIEnt("172.0.0.1",password);    sshclIEnt.Connect();SshCommand sc= sshclIEnt .CreateCommand("Your Commands here");sc.Execute();string answer = sc.Result;

编辑:另一种方法是使用shellstream.

创建一个ShellStream,如:

ShellStream stream = sshclIEnt.CreateShellStream("customCommand",80,24,800,600,1024);

然后你可以使用这样的命令:

public StringBuilder sendCommand(string customCMD)    {        StringBuilder answer;        var reader = new StreamReader(stream);        var writer = new StreamWriter(stream);        writer.autoFlush = true;         WriteStream(customCMD,writer,stream);        answer = ReadStream(reader);        return answer;    }private voID WriteStream(string cmd,StreamWriter writer,ShellStream stream)    {        writer.Writeline(cmd);        while (stream.Length == 0)        {            Thread.Sleep(500);        }    }private StringBuilder ReadStream(StreamReader reader)    {        StringBuilder result = new StringBuilder();        string line;        while ((line = reader.Readline()) != null)        {            result.Appendline(line);        }        return result;    }
总结

以上是内存溢出为你收集整理的如何在C#中的SSH服务器上运行命令?全部内容,希望文章能够帮你解决如何在C#中的SSH服务器上运行命令?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1257299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存