资源简介
C# 利用Renci库来实现ssh客户端,可以执行ssh命令并获取返回结果。一般的Renci ssh例子都不太好用,不能获取到命令的执行结果(shell执行命令后的输出信息),本例子是可以的。通过创建ShellStream,执行命令后,使用Expect方法并配合正则表达式,可以获取到命令执行后的全部输出信息。
完整的Vs2008 C#代码,可编译和测试。

代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Renci.SshNet;
using Renci.SshNet.Common;
using System.Text.Regularexpressions;
namespace sshCmdTest
{
class Program
{
static void Main(string[] args)
{
var sshClient = new SshClient(“192.168.2.108“ 22 “root“ “abc.1234“);//主机,端口,用户名和密码
try
{
sshClient.Connect();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return;
}
ShellStream shellStreamSSH = sshClient.CreateShellStream(“shell“ 80 60 800 600 65536);//创建shell
string hello = ““;
TimeSpan span = new TimeSpan(0 0 10);//命令执行的超时时间是10秒,可以跟据需要调整
Regex r = new Regex(“(\\[root@localhost ~\\]#)+“);// [root@localhost ~]# 是命令执行结束后的提示符,\\表示转义,因为在Regex里面[和]有特殊含义
hello = shellStreamSSH.Expect(r span);//获取登录后的打印信息,比如类似:Last login: Sun Aug 11 13:43:22 2019 from 192.168.2.124\r\r\n[root@localhost ~]#
Console.WriteLine(hello);
string res = ““;
string command = “ls /mnt“;
shellStreamSSH.WriteLine(command);//发送命令
shellStreamSSH.Flush();
res = shellStreamSSH.Expect(r span);//等待命令执行结束,如果失败了就会返回null,正常执行就会返回结果信息
Console.WriteLine(res);
command = “ifconfig“;
shellStreamSSH.WriteLine(command);
shellStreamSSH.Flush();
res = shellStreamSSH.Expect(r span);
Console.WriteLine(res);
sshClient.Disconnect();
Console.ReadLine();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 920 2019-08-08 15:56 sshCmdTest.sln
..A..H. 17920 2019-08-11 11:31 sshCmdTest.suo
文件 470016 2019-03-02 16:45 sshCmdTest\bin\Debug\Renci.SshNet.dll
文件 5120 2019-08-11 13:51 sshCmdTest\bin\Debug\sshCmdTest.exe
文件 15872 2019-08-11 13:51 sshCmdTest\bin\Debug\sshCmdTest.pdb
文件 14328 2019-08-11 13:51 sshCmdTest\bin\Debug\sshCmdTest.vshost.exe
文件 490 2009-06-11 05:14 sshCmdTest\bin\Debug\sshCmdTest.vshost.exe.manifest
文件 470016 2019-03-02 16:45 sshCmdTest\dll\Renci.SshNet.dll
文件 167266 2019-03-02 16:49 sshCmdTest\dll\Renci.SshNet.rar
文件 4559 2019-08-08 15:58 sshCmdTest\obj\Debug\ResolveAssemblyReference.cache
文件 366 2019-08-11 13:51 sshCmdTest\obj\Debug\sshCmdTest.csproj.FileListAbsolute.txt
文件 5120 2019-08-11 13:51 sshCmdTest\obj\Debug\sshCmdTest.exe
文件 15872 2019-08-11 13:51 sshCmdTest\obj\Debug\sshCmdTest.pdb
文件 1985 2019-08-11 13:52 sshCmdTest\Program.cs
文件 1370 2019-08-08 15:56 sshCmdTest\Properties\AssemblyInfo.cs
文件 2746 2019-08-08 15:58 sshCmdTest\sshCmdTest.csproj
目录 0 2019-08-08 15:56 sshCmdTest\obj\Debug\TempPE
目录 0 2019-08-08 15:58 sshCmdTest\bin\Debug
目录 0 2019-08-11 13:51 sshCmdTest\obj\Debug
目录 0 2019-08-08 15:56 sshCmdTest\bin
目录 0 2019-08-08 15:57 sshCmdTest\dll
目录 0 2019-08-08 15:56 sshCmdTest\obj
目录 0 2019-08-08 15:56 sshCmdTest\Properties
目录 0 2019-08-11 13:52 sshCmdTest
----------- --------- ---------- ----- ----
1193966 24
相关资源
- C# TIP文件生成和拆解
- C#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
评论
共有 条评论