Posted By

ryantxr on 10/10/12


Tagged

file send ssh receive


Versions (?)

PHP SSH API class


 / Published in: PHP
 

This SSH API is used to execute remote commands, send and receive files.

  1. class SshApi extends BaseObject{
  2. public $session = null;
  3. public $authenticated = false;
  4.  
  5. public function __construct(){
  6.  
  7. }
  8.  
  9. public function connect($host){
  10. $this->session = ssh2_connect($host);
  11. return $this->session;
  12. }
  13.  
  14. public function pubkeyFile($sshUser, $sshPub, $sshPriv, $sshPass){
  15. if ( ! $this->session ) return false;
  16. if ( empty($sshPass) ){
  17. $b = ssh2_auth_pubkey_file( $this->session, $sshUser, $sshPub, $sshPriv);
  18. }
  19. else
  20. $b = ssh2_auth_pubkey_file( $this->session, $sshUser, $sshPub, $sshPriv, $sshPass);
  21. if ( $b ) $this->authenticated = true;
  22. return $b;
  23. }
  24.  
  25. public function send($localfile, $remotefile, $perms=0660){
  26. $this->debug(__METHOD__);
  27. if ( ! $this->session ) return false;
  28. $this->debug('Sending '. $localfile . ' to ' . $remotefile);
  29. $b = ssh2_scp_send($this->session, $localfile, $remotefile, $perms);
  30. return $b;
  31. }
  32.  
  33. public function recv($remotefile , $localfile){
  34. if ( ! $this->session ) return false;
  35. $b = ssh2_scp_recv($this->session , $remotefile , $localfile );
  36. return $b;
  37. }
  38.  
  39. public function exec($command){
  40. if ( ! $this->session ) return false;
  41. $stream = ssh2_exec($this->session, $command);
  42. return $stream;
  43. }
  44. }

Report this snippet  

You need to login to post a comment.