ssh2:// — Shell sécurisé 2
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 et suivants (PECL)
Note: Ce gestionnaire n'est pas activé par défaut
Pour utiliser les gestionnaires ssh2.*://, vous devez installer l'extension » SSH2 disponible via » PECL.
En plus d'accepter les identifications traditionnelles via l'URI, le gestionnaire ssh2 réutilisera les connexions ouvertes en passant la ressource de connexion dans la partie hôte de l'URL.
Exemple #1 Ouverture d'un flux depuis une connexion active
<?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');
?>
Exemple #2 La variable $session doit rester disponible !
Afin d'utiliser le gestionnaire ssh2.*://$session, vous devez conserver la variable de ressource $session disponible. Le code ci-dessous n'aura pas l'effet escompté :
<?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 fonction unset() clôt la session, car la variable $connection_string ne contient pas de référence à la variable $session, mais uniquement une chaîne dérivée. Ceci survient également lorsque la fonction unset() est implicite, lors d'une sortie du scope (comme dans une fonction).