CXLVIII. Secure Shell2 Functions

Introduction

Bindings to the libssh2 library which provide access to resources (shell, remote exec, tunneling, file transfer) on a remote machine using a secure cryptographic transport.

Installation

Windows binaries may be found at http://snaps.php.net/. To install, download php_ssh2.dll to the folder specified by your php.ini file's extension_dir directive. Enable it by adding extension=php_ssh2.dll to your php.ini and restarting your webserver.

extension_dir=c:/php5/exts/
extension=php_ssh2.dll

Linux, BSD, and other *nix variants can be compiled using the following steps:

  • Download and install OpenSSL. If you install OpenSSL via your distribution's packaging system be sure to install the development libraries as well. This will typically be a package named openssl-dev, openssl_devel, or some variation thereof.

  • Download and install libssh2. Typically this means executing the following command from the libssh2 source tree. ./configure && make all install.

  • Run the pear installer for PECL/ssh2: pear install ssh2

  • Copy ssh2.so from the directory indicated by the build process to the location specified in your php.ini file under extension_dir.

  • Add extension=ssh2.so to your php.ini

  • Restart your webserver to reload your php.ini settings.

Development Versions: There are currently no stable versions of PECL/ssh2, to force installation of the beta version of PECL/ssh2 execute: pear install ssh2-beta

Compiling PECL/ssh2 without using the PEAR command: Rather than using pear install ssh2 to automatically download and install PECL/ssh2, you may download the tarball from PECL. From the root of the unpacked tarball, run: phpize && ./configure --with-ssh2 && make to generate ssh2.so. Once built, continue the installation from step 4 above.

Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: http://pecl.php.net/package/ssh2.

Note: You will need version 0.4 or greater of the libssh2 library (possibly higher, see release notes).

Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

SSH2_FINGERPRINT_MD5 (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as an MD5 hash.

SSH2_FINGERPRINT_SHA1 (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as an SHA1 hash.

SSH2_FINGERPRINT_HEX (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as a string of hexits.

SSH2_FINGERPRINT_RAW (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as a raw string of 8-bit characters.

SSH2_TERM_UNIT_CHARS (integer)

Flag to ssh2_shell() specifying that width and height are provided as character sizes.

SSH2_TERM_UNIT_PIXELS (integer)

Flag to ssh2_shell() specifying that width and height are provided in pixel units.

SSH2_DEFAULT_TERM_WIDTH (integer)

Default terminal width requested by ssh2_shell().

SSH2_DEFAULT_TERM_HEIGHT (integer)

Default terminal height requested by ssh2_shell().

SSH2_DEFAULT_TERM_UNIT (integer)

Default terminal units requested by ssh2_shell().

SSH2_STREAM_STDIO (integer)

Flag to ssh2_fetch_stream() requesting STDIO subchannel.

SSH2_STREAM_STDERR (integer)

Flag to ssh2_fetch_stream() requesting STDERR subchannel.

SSH2_DEFAULT_TERMINAL (string)

Default terminal type (e.g. vt102, ansi, xterm, vanilla) requested by ssh2_shell().

Table of Contents
ssh2_auth_hostbased_file --  Authenticate using a public hostkey
ssh2_auth_none --  Authenticate as "none"
ssh2_auth_password --  Authenticate over SSH using a plain password
ssh2_auth_pubkey_file --  Authenticate using a public key
ssh2_connect --  Connect to an SSH server
ssh2_exec --  Execute a command on a remote server
ssh2_fetch_stream --  Fetch an extended data stream
ssh2_fingerprint --  Retreive fingerprint of remote server
ssh2_methods_negotiated --  Return list of negotiated methods
ssh2_publickey_add --  Add an authorized publickey
ssh2_publickey_init --  Initialize Publickey subsystem
ssh2_publickey_list --  List currently authorized publickeys
ssh2_publickey_remove --  Remove an authorized publickey
ssh2_scp_recv --  Request a file via SCP
ssh2_scp_send --  Send a file via SCP
ssh2_sftp_lstat --  Stat a symbolic link
ssh2_sftp_mkdir --  Create a directory
ssh2_sftp_readlink --  Return the target of a symbolic link
ssh2_sftp_realpath --  Resolve the realpath of a provided path string
ssh2_sftp_rename --  Rename a remote file
ssh2_sftp_rmdir --  Remove a directory
ssh2_sftp_stat --  Stat a file on a remote filesystem
ssh2_sftp_symlink --  Create a symlink
ssh2_sftp_unlink --  Delete a file
ssh2_sftp --  Initialize SFTP subsystem
ssh2_shell --  Request an interactive shell
ssh2_tunnel --  Open a tunnel through a remote server