PHP Conference Nagoya 2025

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnelOpen a tunnel through a remote server

Description

ssh2_tunnel(resource $session, string $host, int $port): resource

Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

Parameters

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

host

port

Return Values

Examples

Example #1 Opening a tunnel to an arbitrary host

<?php
$connection
= ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

See Also

add a note

User Contributed Notes 1 note

up
1
marc
9 years ago
ssh2_tunnel returns a socket stream (e.g, the output of fsockopen). You can use something basic like this to send a line break and get any output back to test that it's working:

fwrite($tunnel, "\n");
while (!feof($tunnel)) {
echo fgets($tunnel, 128);
}

Just a reminder: you can't currently use the socket with any of the cURL functions.
To Top