ssh2://
Оновлено: 11.05.2023
ssh2:// - Безпечна оболонка 2
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)
Зауваження: За замовчуванням цю обгортку не ввімкнено Для використання обгорток ssh2.*:// вам слід встановити розширення " SSH2, доступне з " PECL.
На додаток до прийняття традиційних даних для входу в URI, обгортки ssh2 також повторно використовують відкриті з'єднання, передаючи ресурс з'єднання в хост-частині URL-адреси.
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
session
sftp
methods
callbacks
username
password
pubkey_file
privkey_file
env
term
term_width
term_height
term_units
SSH2_TERM_UNIT_CHARS
Приклад #1 Відкриття потоку з активного з'єднання
<?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');
?>
Приклад #2 Ця змінна $session повинна бути доступною!
Для того, щоб використовувати обгортки ssh2.*://$session, ви повинні зберігати змінну ресурсу $session. Код, наведений нижче, не дасть бажаного ефекту:
<?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() закриває сеанс, оскільки $connection_string не містить посилання на змінну $session, а лише приведення до рядка, отриманого з неї. Це також трапляється, коли unset() є неявним через вихід за межі області видимості (наприклад, у функції).