Как создать многоканальную команду в C #, подключиться по SSH (RenciSSH) VisualStudio - PullRequest
0 голосов
/ 31 октября 2018

:)

Я работаю над Visual Studio - я подключился через RenciSSH к ssh на Linux-серверах в моей работе. Теперь у меня есть проблема, чтобы получить вывод с серверов в многострочном режиме (ниже код):

Аутентификация на серверах:

KeyboardInteractiveAuthenticationMethod kauth = new KeyboardInteractiveAuthenticationMethod(txtLog.Text);
PasswordAuthenticationMethod pauth = new PasswordAuthenticationMethod(txtLog.Text, txtPass.Text);
kauth.AuthenticationPrompt += new EventHandler<AuthenticationPromptEventArgs>(HandleKeyEvent);
ConnectionInfo connectionInfo = new ConnectionInfo(txtHost.Text, txtLog.Text, pauth, kauth);

sshclient = new SshClient(connectionInfo);

sshclient.ConnectionInfo.Timeout = TimeSpan.FromSeconds(3);
sshclient.Connect();


txtOutput.Text = txtHost.Text + ":" + Environment.NewLine;

SshCommand sc = sshclient.CreateCommand(@"df -h /home | grep home && ls -l");

txtOutput.Text += sc.BeginExecute() + Environment.NewLine;

sshclient.Disconnect();

Выше есть код, где я не смог получить заполненный вывод. А также : Когда я установил только df -h / home | grep home:

SshCommand sc = sshclient.CreateCommand(@"df -h /home | grep home)

тогда у меня есть вывод в моем приложении, но когда я попытался поместить две или более команд, у меня пустой вывод, и я не знаю почему.

Есть проблема с подключением или есть проблема с командой в Linux?

И вторая проблема, когда я задаю, например:

SshCommand sc = sshclient.CreateCommand(@"df -h)

У меня есть вывод только в 1 строке, и это не читается. Есть ли у вас какие-либо советы, чтобы иметь вывод, который я вижу на сервере (строка за строкой)?

Заранее спасибо !!!!!

...