ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 and up (PECL)
Note: This wrapper is not enabled by default
In order to use the ssh2.*:// wrappers you must install the » SSH2 extension available from » PECL.
In addition to accepting traditional URI login details, the ssh2 wrappers will also reuse open connections by passing the connection resource in the host portion of the URL.
1 2 3 4 5 6 | <?php $session = ssh2_connect( 'example.com' , 22); ssh2_auth_pubkey_file( $session , 'username' , '/home/username/.ssh/id_rsa.pub' , '/home/username/.ssh/id_rsa' , 'secret' ); ?> |
In order to use the ssh2.*://$session wrappers you must keep the $session resouce variable. The code below will not have the desired effect:
1 2 3 4 5 6 7 8 | <?php $session = ssh2_connect( 'example.com' , 22); ssh2_auth_pubkey_file( $session , 'username' , '/home/username/.ssh/id_rsa.pub' , '/home/username/.ssh/id_rsa' , 'secret' ); unset( $session ); $stream = fopen ( $connection_string . "path/to/file" , 'r' ); ?> |
unset() closes the session, because $connection_string does not hold a reference to the $session variable, just a string cast derived from it. This also happens when the unset() is implicit because of leaving scope (like in a function).
Please login to continue.