ssh2://

ssh2://Secure Shell 2

Описание

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)

Замечание: Эта обертка не включена по умолчанию
Для того, чтобы использовать обертки ssh2.*:// вам необходимо установить расширение » SSH2, доступное в » PECL.

Кроме получения традиционных данных для входа к URI, обертки ssh2 также будут повторно использовать открытые соединения, передавая ресурс соединения в хост-часть URL.

Использование

Опции

Основная информация
Атрибут 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() при выходе из области видимости (например, из функции).