ssh2:// — Shell seguro 2
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)
Nota: Esta envoltura no está activada por omisión
Para utilizar la envoltura ssh2://, la extensión » SSH2 disponible en » PECL debe ser instalada.
Además de aceptar las identificaciones tradicionales mediante la URI, la envoltura ssh2 reutilizará las conexiones abiertas pasando la recurso de conexión en la parte host de la URL.
Ejemplo #1 Apertura de un flujo desde una conexión activa
<?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');
?>
Ejemplo #2 La variable $session debe permanecer disponible
Para utilizar la envoltura ssh2.*://$session, la variable de recurso $session debe ser conservada. El código a continuación no tendrá el efecto deseado:
<?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');
?>
La función unset() cierra la sesión, ya que la variable $connection_string no contiene una referencia a la variable $session, sino solo una cadena derivada. Esto también ocurre cuando la función unset() es implícita, durante una salida del ámbito (como en una función).