ssh2:// — Secure Shell 2
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)
Hinweis: Dieser Wrapper ist standardmäßig nicht aktiviert
Um den Wrapper ssh2.*:// verwenden zu können, muss die » SSH2-Erweiterung von » PECL installiert werden
Neben den herkömmlichen URI-Anmeldedaten akzeptieren die ssh2-Wrapper auch eine im Host-Teil der URL übergebene Verbindungsressource, mit der offene Verbindungen wiederverwendet werden können.
Beispiel #1 Öffnen eines Streams aus einer aktiven Verbindung
<?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');
?>
Beispiel #2 Diese $session-Variable muss immer verfügbar sein!
Um die ssh2.*://$session-Wrapper verwenden zu können, muss die Ressourcenvariable $session erhalten bleiben. Der folgende Code hat nicht die gewünschte Wirkung:
<?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');
?>
unset() schließt die Session, weil $connection_string keinen Verweis auf die Variable $session enthält, sondern nur eine von ihr abgeleitete Zeichenkette. Dies ist auch der Fall, wenn unset() implizit aufgerufen wird, weil der Gültigkeitsbereich verlassen wird (z. B. bei einer Funktion).