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

To Top