Guest User

Untitled

a guest
May 15th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.86 KB | None | 0 0
  1. <?php
  2. $hostname = '192.168.0.150';  // adresse de la machine distante (adresse ip ou nom de domaine)
  3. $known_host = '7784BB94B3A68D0267C9885E3B3D66CD'; // fingerprint de la machine distante
  4. $username = 'tyrtamos'; // nom de l'utilisateur pour la machine distante
  5. $password = 'dF72yPPic89';  // mot de passe de l'utilisateur
  6. $commande = 'ls -l /';    // commande shell à envoyer à la machine cible (ex: listage de "/")
  7.  
  8. // Etablissement de la connexion ssh2, port 22
  9. if (false === $connection = ssh2_connect($hostname, 22)) {
  10.   echo 'pas de connexion<br />';
  11.   exit();  // sortie si erreur
  12.   }
  13. else {
  14.   echo 'connexion établie<br />';
  15.   }
  16.  
  17. // Vérification du fingerprint
  18. $fingerprint = ssh2_fingerprint($connection, SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);
  19. if ($fingerprint != $known_host) {
  20.   echo "La clé hôte ne correspond pas !<br />";
  21.   echo "clé renvoyée: ".$fingerprint.'<br />';
  22.   exit(); // sortie si erreur
  23.   }
  24. else {
  25.   echo "fingerprint conforme <br />";
  26.   }
  27.  
  28. //authentification utilisateur
  29. if (false === ssh2_auth_password($connection, $username, $password)) {
  30.   echo 'Echec identification<br />';
  31.   exit(); // sortie si erreur
  32.   }
  33. else {
  34.   echo 'Identification réussie !<br />';
  35.   }
  36.  
  37. //exécution command shell sur la machine destinataire
  38. if (false === $stream = ssh2_exec($connection, $commande)) {
  39.   echo "erreur d'exécution commande shell<br />";
  40.   }
  41.  
  42. // sortie du résultat quand il y en a un
  43. stream_set_blocking($stream, true);
  44. $output = '';
  45. while($ligne = fgets($stream)) {
  46.   $output = $output . $ligne . '<br />';
  47.   }
  48. echo $output;
  49.  
  50. // Sortie de l'erreur quand il y en a une
  51. $stderr = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
  52. stream_set_blocking($stderr, true);
  53. $output = '';
  54. while($ligne = fgets($stderr)) {
  55.   $output = $output . $ligne . '<br />';
  56.   }
  57. echo $output;
  58. fclose($stderr);
  59. fclose($stream);
  60. ?>
Add Comment
Please, Sign In to add comment