Secure Shell 2

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 and up (PECL)

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.

Example N-6. Opening a stream from an active connection

<?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');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

Table N-9. Wrapper Summary

Attributessh2.shellssh2.execssh2.tunnelssh2.sftpssh2.scp
Restricted by allow_url_fopenYesYesYesYesYes
Allows ReadingYesYesYesYesYes
Allows WritingYesYesYesYesNo
Allows AppendingNoNoNoYes (When supported by server)No
Allows Simultaneous Reading and WritingYesYesYesYesNo
Supports stat()NoNoNoYesNo
Supports unlink()NoNoNoYesNo
Supports rename()NoNoNoYesNo
Supports mkdir()NoNoNoYesNo
Supports rmdir()NoNoNoYesNo

Table N-10. Context options

NameUsageDefault
sessionPreconnected ssh2 resource to be reused 
sftpPreallocated sftp resource to be reused 
methodsKey exchange, hostkey, cipher, compression, and MAC methods to use 
callbacks  
usernameUsername to connect as 
passwordPassword to use with password authentication 
pubkey_fileName of public key file to use for authentication 
privkey_fileName of private key file to use for authentication 
envAssociate array of environment variables to set 
termTerminal emulation type to request when allocating a pty 
term_widthWidth of terminal requested when allocating a pty 
term_heightHeight of terminal requested when allocating a pty 
term_unitsUnits to use with term_width and term_heightSSH2_TERM_UNIT_CHARS