ssh2:// — Shell sécurisé 2
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)
Note: Cette enveloppe n'est pas activé par défaut
Pour utiliser l'enveloppe ssh2://, l'extension » SSH2 disponible sur » PECL doit être installée.
En plus d'accepter les identifications traditionnelles via l'URI, l'enveloppe 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 l'enveloppe ssh2.*://$session, la variable de ressource $session doit être conservée. 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).