0
我正在尝试使用C#创建一个SSH客户端。我正在使用Tamir.SharpSsh库。我有问题发送命令并从服务器获取适当的响应。SharpSsh命令执行
我一直在测试它的方式是通过重新发送过ls
命令,随后cd..
命令,然后ls
命令 - 看看是否被正确执行cd..
命令。但是,第一个ls
命令与第二个ls
命令之间没有区别。我不完全确定我做错了什么。也许我使用了错误的Ssh类型。我提供了我得到的代码和输出。我还添加了我期望的输出。
using Tamir.SharpSsh;
namespace SSHNetExample
{
class Program
{
static void Main(string[] args)
{
SshExec ssh = null;
try
{
Console.Write("-Connecting...");
ssh = new SshExec(host, username, password);
ssh.Connect();
Console.WriteLine("OK ({0}/{1})", ssh.Cipher, ssh.Mac);
Console.WriteLine("Server version={0}, Client version={1}", ssh.ServerVersion, ssh.ClientVersion);
Console.WriteLine("-Use the 'exit' command to disconnect.");
Console.WriteLine();
while(true)
{
string command = Console.ReadLine();
if(command == "exit")
break;
string data = ssh.RunCommand(command);
Console.WriteLine(data);
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
if(ssh != null)
{
Console.WriteLine("Disconnecting...");
ssh.Close();
Console.WriteLine("OK");
}
}
}
}
输出:
预期输出:
你可以举一个使用SshShell的例子吗?我曾尝试在SshExec之前使用它,并且我无法使其工作。我很困惑到什么进入ExpectPattern属性和模式功能。 – user2970916 2015-04-01 17:16:20
不,对不起,我开始使用SharpSSH,因为它没有被维护。我现在使用SSH.NET(https://sshnet.codeplex.com/)库,它有更好的文档和更新的更新。 – Richard 2015-04-01 17:23:24
谢谢你的理查德。我继续前进并使用SSH.NET迁移。我还没有真正能够找到太多的文档。我确实发布了另一个问题,它使用SSH.NET重现了我在这个问题上遇到的问题。 http://stackoverflow.com/q/29397766/2970916 – user2970916 2015-04-01 18:08:57