Bonjour à tous !

Je travaille sur une application en ligne de commande sous Windows. Cette application doit se connecter via SSH à un serveur distant et exécuter un script.
Mon problème, c'est que j'arrive bien à lancer la connexion SSH via le popen (voir le spawnlp), mais je voudrais interagir avec la ligne de commande de l'application SSH, c'est à dire entrer automatiquement(via mon programme) le mot de passe puis entrer le chemin vers le script que je veux appeler.

Quelqu'un aurait il une idée sur la meilleure méthode à utiliser ?

Voici mon code pour le moment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
#include "stdafx.h"
#include "process.h"
#include <iostream>
#include <limits> 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
   // Connexion au serveur distant
   char   psBuffer[128];
   FILE   *pPipe;
 
   if( (pPipe = _popen( "ssh2 login@XXX.XXX.XXX.XXX", "wt" )) == NULL ) {
	   exit( 1 );
   }
 
   /* Read pipe until end of file, or an error occurs. */
   while(fgets(psBuffer, 128, pPipe))
   {
      printf(psBuffer);
   }
 
   /* Close pipe and print return value of pPipe. */
   if (feof( pPipe))
   {
     printf( "\nProcess returned %d\n", _pclose( pPipe ) );
   }
   else
   {
     printf( "Error: Failed to read the pipe to the end.\n");
   }
 
  //_spawnlp(_P_WAIT , "ssh2","ssh2","login@XXX.XXX.XXX.XXX", NULL );
 
  // Fin du programme
  cout << "Appuyez sur entrée pour continuer...";
  cin.ignore( numeric_limits<streamsize>::max(), '\n' );
  return 0;
}
Merci