системы, которые работают SSH обычно поддерживают какой-то SFTP, так что вы могли бы просто использовать что-то вроде SSH.NET:
using (var sftpClient = new SftpClient("localhost", "root", "bugmenot")
{
sftpClient.Connect();
var files = sftpClient.ListDirectory("/tmp");
}
или SharpSSH:
Sftp sftp = new Sftp("localhost", "root", "bugmenot");
try
{
sftp.Connect();
ArrayList files = sftp.GetFileList("/tmp");
}
finally
{
sftp.Close();
}
Edit: Вы можете запустить любую команду над SSH с обеими библиотеками. Правда, я еще не сделал этого, пока нет, но он должен работать так:
SSH.NET
using (var sshClient = new SshClient("localhost", "root", "bugmenot")
{
sshClient.Connect();
var cmd = sshClient.RunCommand("ls");
var output = cmd.Result;
}
SharpSSH
SshStream ssh = new SshStream("localhost", "root", "bugmenot");
try
{
ssh.Write("ls");
var output = ssh.ReadResponse();
}
finally
{
ssh.Close();
}
хорошо, но это только замена "LS" , Я понимаю, что это был простой пример для команды _any_. –
@ Hangy: Спасибо, что ответили. Я не смог запустить ваш предложенный код, поскольку мне нужно получить систему со всей установкой .Net. ..... Я ищу решение, которое будет полезно для запуска любой команды или скрипта, который находится в удаленной системе. (Спасибо Хенк Холтерман). – vrbilgi
Извините, я не использовал это сам, но я надеюсь, что пример в моем редактировании и добавленные ссылки помогут вам достичь этого! – hangy