web-dev-qa-db-fra.com

C # envoie une simple commande SSH

Je suis un jeune étudiant et j'ai reçu mes devoirs pour cette semaine. C'est assez difficile pour moi parce que je dois créer un programme capable de se connecter à un serveur SSH et d'envoyer le commamd "etc/init.d/networking restart".

Je devrais programmer cette application en C # et je suis plutôt novice dans ce domaine (je viens juste d'apprendre de leçons d'école). Je devrais aussi créer une interface graphique.

Je comprends les bases du C # (loop, if etc ...).

J'ai déjà créé une interface graphique, des menus, des boutons et une liste de consignation. GUI = 3 zones de texte (ip, nom d'utilisateur, mot de passe) et un bouton pour se connecter.

screenshot of ui

screenshot of code

Je code avec Microsoft Vistual Studio.

Ma question est la suivante: comment puis-je établir une connexion SSH avec mon serveur?

45
lucbas

J'ai utilisé SSH.Net dans un projet il y a quelque temps et j'en étais très heureux. Il est également accompagné d’une bonne documentation et de nombreux exemples sur son utilisation.

Le site Web du paquetage d'origine peut toujours être trouvé ici , y compris la documentation (qui n'est actuellement pas disponible sur GitHub).

Pour votre cas, le code serait quelque chose comme ça.

using (var client = new SshClient("hostnameOrIp", "username", "password"))
{
    client.Connect();
    client.RunCommand("etc/init.d/networking restart");
    client.Disconnect();
}
88
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();

// utilisation de SSH.Net

7
Mario Palacios
4
NickD