ssh2://

Secure Shell 2

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.

Examples:
Opening a stream from an active connection
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');
$stream fopen("ssh2.tunnel://$session/remote.example.com:1234"'r');
?>
This $session variable must be kept available!

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');
$connection_string "ssh2.sftp://$session/";
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).

doc_php
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.