В C # как запустить команду Unix на удаленном SSH с помощью TcpClient - PullRequest
3 голосов
/ 15 декабря 2011

Я пытаюсь запустить команду UNIX на удаленном хосте из моего приложения на C #.

Я видел различные публикации по Интернету, включая SO, для того, чтобы сделать это, используя различные библиотеки, такие как SmartSsh и многие другие.И некоторые другие, использующие команды командной строки.

Я не хочу использовать какую-либо стороннюю библиотеку.

Поэтому я попытался использовать класс TcpClient с примером, показанным здесь на MSDN .Я передаю имя хоста как: user @ servername и порт 22 * ​​1012 *.Когда я запускаю этот код, он выдает исключение

SocketException (0x80004005): No such host is known
at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port) 

Это потому, что мой сервер / хост ожидает пароль для пользователя, если да, то как мне его предоставить?

1 Ответ

2 голосов
/ 15 декабря 2011

Сокет - это только соединение, он выглядит как звонок человеку по телефону.Сокет гарантирует, что у вас есть связь с другим человеком, но вам все еще нужен язык (протокол) для общения.По телефону это общий язык.Когда вы хотите выполнить команды Unix, вам также нужен язык, который понимают и вы, и цель.Одним из таких протоколов является SSH, порт 22. SSH также определяет аутентификацию, поэтому вам нужно реализовать протокол SSH или лучше, используйте стороннюю библиотеку, чтобы сделать это для вас

...