2015-08-09 8 views
-1

Пока я играл с Visual Studio (пытаясь запустить команду через ssh), что-то пошло не так, и программа просто не работает. Я искал часы в Интернете, но я не нашел ничего, что могло бы решить мою проблему.ssh.net не подключается к серверу ssh

Это код:

using Renci.SshNet; 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication3 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      using (var sshClient = new SshClient("ip censor", "root", "password censor")) 
      { 
       sshClient.Connect(); 
       sshClient.RunCommand("screen -S BungeeCord -X stuff 'alert ciao'`echo -ne '\015'`"); 
       sshClient.Disconnect(); 
      } 
     } 
    } 
} 

и это ошибка

'WindowsFormsApplication3.vshost.exe' (CLR v4.0.30319:   WindowsFormsApplication3.vshost.exe): Loaded '  c:\users\firestorm\documents\visual studio 2015\Projects\WindowsFormsApplication3\WindowsFormsApplication3\bin\Debug\WindowsFormsApplication3.exe'. Symbols loaded. 
'WindowsFormsApplication3.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication3.vshost.exe): Loaded 'c:\users\firestorm\documents\visual studio 2015\Projects\WindowsFormsApplication3\WindowsFormsApplication3\bin\Debug\Renci. SshNet.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 
'WindowsFormsApplication3.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication3.vshost.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 
'WindowsFormsApplication3.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication3.vshost.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_it_b77a5c561934e089\mscorlib.resources.dll'. Module was built without symbols. 
'WindowsFormsApplication3.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication3.vshost.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Dynamic\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Dynamic.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 
    'WindowsFormsApplication3.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication3.vshost.exe): Loaded 'Anonymously Hosted DynamicMethods Assembly'. 
thread 0x38e4 has exited with code 0 (0x0). 
The thread 0x1e7c has exited with code 0 (0x0). 
The thread 0x1a00 has exited with code 0 (0x0). 
The thread 0x2a90 has exited with code 0 (0x0). 
The thread 0x3e4c has exited with code 0 (0x0). 
The thread 0x3128 has exited with code 0 (0x0). 
The thread 0x3c48 has exited with code 0 (0x0). 
The thread 0x12e0 has exited with code 0 (0x0). 
The thread 0x136c has exited with code 0 (0x0). 
The program '[15892] WindowsFormsApplication3.vshost.exe' has exited with code 0 (0x0). 

, что я делаю неправильно? спасибо за помощь!

+0

это перетащить. вы смотрите здесь: https://sshnet.codeplex.com/discussions – Drew

+0

Я не вижу ошибок в журнале вывода. Получаете ли вы какие-либо исключения при нажатии кнопки? Или что значит «просто не работает»? –

+0

Нет, это странная вещь, я не получаю никакой другой выход, чем это! – Firestorm7893

ответ

1

Это работает, вы ничего не делаете с выходом. Попробуйте показывать вывод в MessageBox или что-то, как показано ниже:

private void button1_Click(object sender, EventArgs e) 
{ 
    using (var sshClient = new SshClient("ip censor", "root", "password censor")) 
    { 
     sshClient.Connect(); 
     var cmd = sshClient.RunCommand("screen -S BungeeCord -X stuff 'alert ciao'`echo -ne '\015'`"); 

     MessageBox.Show(cmd.Output); 

     sshClient.Disconnect(); 
    } 
} 
0

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

делает соединение:

public class SSHConnection 
    { 
     public SSHConnection() { } 
    public ConnectionInfo makeSSHConnection(string ipAdress, int port, string user, string pwd) 
    { 
     ConnectionInfo ConnNfo = new ConnectionInfo(ipAdress, port, user, 
      new AuthenticationMethod[]{ 

      // Pasword based Authentication 
      new PasswordAuthenticationMethod(user,pwd), 
      } 
      ); 
     return ConnNfo; 
    } 
} 

используйте ConnNfo для подключения;

using (var sshclient = new SshClient(ConnNfo)) 
       { 

        sshclient.Connect(); 
        using (var cmd = sshclient.CreateCommand(cmdCommand)) 
        { 

         cmd.Execute(); 
         Console.WriteLine("Command>" + cmd.CommandText); 
         Console.WriteLine(cmd.Result); 
         Console.WriteLine("Return Value = {0}", cmd.ExitStatus); 
        } 
        sshclient.Disconnect(); 
       } 

нота в этом примере выполняет функцию CMD comamndline, используя соединение SSH, однако вы можете легко заменить с помощью команды SSH.

(вы уверены, что код ssh дает ошибку?)

Смежные вопросы