Bonjour,

je voudrais exécuter des scripts sur une machine distante a travers une page php.

Ma connexion fonctionne, j'ai une autorisation via clé publique, ça c'est bon.
Mon problème se situe au niveau de l'exécution de ma commande car elle est exécutée par daemon et non pas par root. bien que dans mes fonction ssh2 j'utilise le login root.

Voici mon code :

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
 
$connection = ssh2_connect('192.168.0.121', 22);
if (!$connection) die('Echec de la connexion');
 
if (!ssh2_auth_pubkey_file($connection, 'root','/root/.ssh/id_dsa.pub','/root/.ssh/id_dsa'))
{ 
	echo "Failed to authenticate\n";
}
else{
	echo "Logged in\n";
	echo "Identification réussie en utilisant une clé publique\n";
	$stream = ssh2_exec($connection, 'ls -l /root');
		stream_set_blocking( $stream, true );
            $data = "";
            while( $buf = fread($stream,4096) ){
                $data .= $buf;
                echo $data;
            }
            fclose($stream);
	$commande = 'ssh root@192.168.0.121 ls -l /root';
	echo exec($commande);
		}
Donc ma question est pourquoi ma commande n'est pas passée en tant que root alors que dans ma fonction (ssh2_auth_pubkey_file) je n'utilise que cet utilisateur ?

Il y a certainement quelques chose qui m'échappe a ce sujet, ssh2_auth_pubkey_file sert a définir avec quelle clé se connecter mais sert-elle a definir avec quel utilisateur ? car je ne crois pas qu'on puisse indiquer a ssh2_exec et ssh2_connect.

Merci de votre aide.

Cordialement,

MatseMa