ssh2://
En esta página
ssh2://
Shell seguro 2
Descripción#
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)
[!NOTE] 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.
Uso#
-
ssh2.shell://user:pass@example.com:22/xterm -
ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd -
ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14 -
ssh2.sftp://user:pass@example.com:22/path/to/filename
Opciones#
| Atributo | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp |
|---|---|---|---|---|---|
| Restringido por allow_url_fopen | Sí | Sí | Sí | Sí | Sí |
| Permite la lectura | Sí | Sí | Sí | Sí | Sí |
| Permite la escritura | Sí | Sí | Sí | Sí | No |
| Permite el añadido | No | No | No | Sí (cuando sea soportado por el servidor) | No |
| Permite la lectura y escritura simultáneamente | Sí | Sí | Sí | Sí | No |
Soporte de la función stat |
No | No | No | Sí | No |
Soporte de la función unlink |
No | No | No | Sí | No |
Soporte de la función rename |
No | No | No | Sí | No |
Soporte de la función mkdir |
No | No | No | Sí | No |
Soporte de la función rmdir |
No | No | No | Sí | No |
Resumen de la envoltura {role="stream_wrapper"}
| Nombre | Uso | Por omisión |
|---|---|---|
session |
recurso ssh2 pre-conectado para reutilizar | |
sftp |
recurso sftp pre-asignado para reutilizar | |
methods |
métodos de intercambio de claves, hostkey, cifrado, compresión y MAC a utilizar | |
callbacks |
||
username |
Nombre de usuario para la conexión | |
password |
Contraseña a utilizar durante la identificación por contraseña | |
pubkey_file |
Nombre del archivo que contiene la clave pública a utilizar durante la identificación | |
privkey_file |
Nombre del archivo que contiene la clave privada a utilizar durante la identificación | |
env |
Array asociativo de variables de entorno a definir | |
term |
Tipo de emulación de terminal a solicitar durante la asignación de un pty | |
term_width |
Ancho del terminal a solicitar durante la asignación de un pty | |
term_height |
Alto del terminal a solicitar durante la asignación de un pty | |
term_units |
Unidades a utilizar con term_width y term_height | SSH2_TERM_UNIT_CHARS |
Opciones de contexto {role="stream_wrapper"}
Ejemplos#
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');
?>
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).