2012-06-23 15 views
30

Sono uno studente giovane e ho ricevuto i compiti per questa settimana. È piuttosto difficile per me perché devo creare un programma, che è in grado di connettersi a un server SSH e inviare il comando "etc/init.d/networking restart".C# invia un semplice comando SSH

Dovrei programmare questa applicazione in C# e sono abbastanza nuova ad esso (ho appreso da alcune lezioni scolastiche). Dovrei anche creare una GUI.

Comprendo le nozioni di base di C# (ciclo, se ecc.).

Ho già creato GUI, menu, pulsanti e un elenco di registri. GUI = 3 caselle di testo (ip, nome utente, password) e un pulsante per connettersi.

screenshot of ui

screenshot of code

che sto codifica con Microsoft vistual Studio.

La mia domanda è: come posso stabilire una connessione SSH al mio server?

+0

Hai visto [questo] (http://www.dart.com/sftp-ssh-code-examples-samples.aspx) –

+1

E ' Sarebbe anche fantastico per noi se condividi ciò che hai effettivamente provato per questo .... –

+0

Ciao, grazie per le tue risposte veloci JacobSeleznev Grazie per questo sito. Ma non posso permettermi questo prodotto. @LolCoder Di sicuro: D Ho creato una GUI [Click Me] (http://www.bilder-hochladen.net/files/haru-4-a87f-png-nb.html) Qui a immagine del codice (bene ^^) [Click Me] (http://www.bilder-hochladen.net/files/haru-5-e4da-png.html) – lucbas

risposta

64

Ho utilizzato SSH.Net in un progetto qualche tempo fa e sono stato molto soddisfatto. Inoltre viene fornito con una buona documentazione con molti esempi su come usarlo.

Il sito Web del pacchetto originale può essere ancora trovato here, compresa la documentazione (che al momento non è disponibile su GitHub).

Per il tuo caso il codice sarebbe simile a questo.

using (var client = new SshClient("hostnameOrIp", "username", "password")) 
{ 
    client.Connect(); 
    client.RunCommand("etc/init.d/networking restart"); 
    client.Disconnect(); 
} 
+0

dove sono stati trovati campioni SSH.NET? Grazie –

+3

È disponibile sotto Downnloads sul loro pagina codeplex come "Guida SshNet": http://sshnet.codeplex.com/releases/view/120565. Non è il modo più comune di fornire documentazione ma è almeno lì. –

+0

@ Karl-JohanSjögren, ho scaricato SSH.NET e se voglio chiamare questo particolare file Unix 'anly_load_int.sh' da .net .. come sarebbe il RunCommand ..? – MethodMan

5
SshClient cSSH = new SshClient("192.168.10.144", 22, "root", "pacaritambo"); 
cSSH.Connect(); 
SshCommand x = cSSH.RunCommand("exec \"/var/lib/asterisk/bin/retrieve_conf\""); 
cSSH.Disconnect(); 
cSSH.Dispose(); 

// utilizzando SSH.Net

+0

questo ha funzionato per me in quanto avevo bisogno di usare una porta che non era il default. –

Problemi correlati