ssh2://

ssh2://Secure Shell 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

Опции

Основная информация
Атрибут ssh2.shell ssh2.exec ssh2.tunnel ssh2.sftp ssh2.scp
Ограничение по allow_url_fopen Да Да Да Да Да
Чтение Да Да Да Да Да
Запись Да Да Да Да Нет
Добавление Нет Нет Нет Да (когда поддерживается сервером) Нет
Одновременная чтение и запись Да Да Да Да Нет
Поддержка stat() Нет Нет Нет Да Нет
Поддержка unlink() Нет Нет Нет Да Нет
Поддержка rename() Нет Нет Нет Да Нет
Поддержка mkdir() Нет Нет Нет Да Нет
Поддержка rmdir() Нет Нет Нет Да Нет

Опции контекста
Имя Использование По умолчанию
session Предварительно соединённый ресурс ssh2 для повторного использования  
sftp Предварительно выделенный ресурс sftp для повторного использования  
methods Обмен ключами, ключ хоста, шифр, компрессия и методы MAC для использования  
callbacks    
username Имя пользователя для соединения  
password Пароль для аутентификации  
pubkey_file Имя файла, в котором находится открытый ключ для аутентификации  
privkey_file Имя файла, в котором находится приватный ключ для аутентификации  
env Ассоциативный массив с переменными окружения, которые необходимо установить  
term Тип эмуляции терминала для запроса, когда выделяется pty  
term_width Ширина терминала, запрашивается когда выделяется pty  
term_height Высота терминала, запрашивается когда выделяется pty  
term_units Единицы, в которых измеряются term_width и term_height 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() при выходе из области видимости (например, из функции).