Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Secure Shell2 Functions : ssh2_connect

ssh2_connect

Connect to an SSH server (PECL ssh2:0.10-0.9)
resource ssh2_connect ( string host [, int port [, array methods [, array callbacks]]] )

Example 2347. ssh2_connect() example

Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
 
printf("Server disconnected with reason code [%d] and message: %s\n",
       
$reason, $message);
}

$methods = array(
 
'kex' => 'diffie-hellman-group1-sha1',
 
'client_to_server' => array(
   
'crypt' => '3des-cbc',
   
'comp' => 'none'),
 
'server_to_client' => array(
   
'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
   
'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!
$connection) die('Connection failed');
?>

Code Examples / Notes » ssh2_connect

suri dot suribala dot com

With Sara's help, I have the following SS2 class that is quite flexible. If anyone improves it, please feel free to let me know.
<?php
// ssh protocols
// note: once openShell method is used, cmdExec does not work
class ssh2 {
 private $host = 'host';
 private $user = 'user';
 private $port = '22';
 private $password = 'password';
 private $con = null;
 private $shell_type = 'xterm';
 private $shell = null;
 private $log = '';
 function __construct($host='', $port=''  ) {
    if( $host!='' ) $this->host  = $host;
    if( $port!='' ) $this->port  = $port;
    $this->con  = ssh2_connect($this->host, $this->port);
    if( !$this->con ) {
      $this->log .= "Connection failed !";
    }
 }
 function authPassword( $user = '', $password = '' ) {
    if( $user!='' ) $this->user  = $user;
    if( $password!='' ) $this->password  = $password;
    if( !ssh2_auth_password( $this->con, $this->user, $this->password ) ) {
      $this->log .= "Authorization failed !";
    }
 }
 function openShell( $shell_type = '' ) {
       if ( $shell_type != '' ) $this->shell_type = $shell_type;
$this->shell = ssh2_shell( $this->con,  $this->shell_type );
if( !$this->shell ) $this->log .= " Shell connection failed !";
 }
 function writeShell( $command = '' ) {
fwrite($this->shell, $command."\n");
 }
 function cmdExec( ) {
       $argc = func_num_args();
       $argv = func_get_args();
$cmd = '';
for( $i=0; $i<$argc ; $i++) {
   if( $i != ($argc-1) ) {
     $cmd .= $argv[$i]." && ";
   }else{
     $cmd .= $argv[$i];
   }
}
echo $cmd;
       $stream = ssh2_exec( $this->con, $cmd );
stream_set_blocking( $stream, true );
return fread( $stream, 4096 );
 }
 function getLog() {
    return $this->log;
 }
}
?>


Change Language


Follow Navioo On Twitter
ssh2_auth_hostbased_file
ssh2_auth_none
ssh2_auth_password
ssh2_auth_pubkey_file
ssh2_connect
ssh2_exec
ssh2_fetch_stream
ssh2_fingerprint
ssh2_methods_negotiated
ssh2_publickey_add
ssh2_publickey_init
ssh2_publickey_list
ssh2_publickey_remove
ssh2_scp_recv
ssh2_scp_send
ssh2_sftp_lstat
ssh2_sftp_mkdir
ssh2_sftp_readlink
ssh2_sftp_realpath
ssh2_sftp_rename
ssh2_sftp_rmdir
ssh2_sftp_stat
ssh2_sftp_symlink
ssh2_sftp_unlink
ssh2_sftp
ssh2_shell
ssh2_tunnel
eXTReMe Tracker