Comment exécuter des commandes sur le serveur SSH en C#?

J'ai besoin d'exécuter cette action à l'aide d'un code C#:

  1. ouvrir putty.exe en arrière-plan (c'est comme une fenêtre cmd)
  2. de connexion à un hôte distant à l'aide de son adresse IP
  3. entrer un nom d'utilisateur et le mot de passe
  4. exécuter plusieurs commandes l'une après l'autre.
  5. exécuter une autre commande qui permet d'obtenir une réponse me disant que les commandes que j'ai couru avant que celui où a été exécutée avec succès

Donc j'essaye de faire comme cela:

ProcessStartInfo proc = new ProcessStartInfo() 
{
     FileName = @"C:\putty.exe",
     UseShellExecute = true, //I think I need to use shell execute ?
     RedirectStandardInput = false,
     RedirectStandardOutput = false,
     Arguments = string.Format("-ssh {0}@{1} 22 -pw {2}", userName, hostIP, password)
     ... //How do I send commands to be executed here ?
};
Process.Start(proc);
Voulez-vous utiliser le même ensemble de commandes à chaque fois? Si oui, essayez de adddding dans votre .bashrc fichier. Si vous souhaitez exécuter différentes commandes, dites-le nous.
Les commandes que je suis de running sont les utilisateurs à ajouter l'adresse mac pour le wifi contrôleur. Donc, fondamentalement, les commandes sont les mêmes, mais avec des adresse mac à chaque fois... Et pouvez-vous me dire ce qu'est cette .bashrc fichier et comment puis-je ajouter ?
SI c'est un serveur Linux (je suppose que l'utilisation de ssh), dans le répertoire home de l'utilisateur est un fichier appelé .bashrc (/home/$user/.bashrc). Ce fichier est un script shell qui obtient excecuted chaque fois qu'un utilisateur se connecte. J'ai par exemple echo des détails sur les performances du serveur toujours sur ouverture de session (c'est à dire df -h et uptime).
OK, mais j'ai besoin de passer des paramètres différents sur chaque commande (e,g, les détails de l'utilisateur, l'adresse mac, etc...)
Vous pouvez utiliser StandardInput pour passer des commandes à votre processus en cours d'exécution. Bien que la gestion d'entrée/de sortie/erreur courants peuvent être plutôt difficiles. La plupart des usful solution à ce problème j'ai trouvé jusqu'à présent (et que j'utilise moi-même avec quelques modifications) est le suivant: codeproject.com/Articles/170017/...

OriginalL'auteur Liran Friedman | 2015-06-17