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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| /* Etablir une liaison avec public/private key */
function connect_to($machine)
{
/* Connection sur le port 22 de $machine en utilisanr RSA */
$connection=@ssh2_connect($machine, 22,
array("hostkey"=>"ssh-rsa"));
if(!$connection)
{
return false;
}
/* le fingerprint n'est pas teste, c'est voulu, il est juste affiche */
$fingerprint=@ssh2_fingerprint($connection,
SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);
/* Utilisation de public/private key */
if(@ssh2_auth_pubkey_file($connection, "user",
"public_key", "private_key", "passphrase"))
{
return array($connection,$fingerprint);
} else {
return false;
}
}
/* Executer une commande, retour les flux stderr et stdout de la commande */
function ssh_command($connection, $cmd)
{
/* Exec commande */
$stdout_stream=@ssh2_exec($connection, $cmd);
if(!$stdout_stream)
{
return false;
}
/* Extrait le flux stderr, a l'origine mixe dans stdout */
$stderr_stream=@ssh2_fetch_stream($stdout_stream,
SSH2_STREAM_STDERR);
if(!$stderr_stream)
{
return false;
}
/* Les flux sont bloquant pour lire le contenu ensuite l'afficher */
if(!@stream_set_blocking($stdout_stream, true))
{
return false;
}
if(!@stream_set_blocking($stderr_stream, true))
{
return;
}
return array($stdout_stream, $stderr_stream);
} |
Partager