ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectConnect to an SSH server

Описание

resource ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] )

Устанавливает соединение с сервером по SSH.

После соединения, пользователь должен проверить ключ сервера, используя функцию ssh2_fingerprint(), и после этого авторизоваться, используя пароль или публичный ключ.

Список параметров

host

port

methods

Параметр methods может быть ассоциативным массивом, содержащим до четырех записей, перечисленных ниже.

Параметр methods может быть ассоциативным массивом, содержащим от одного до четырех параметров
Индекс Что обозначает Допустимые значения*
kex Список методов обмена ключами, разделенных запятой, в порядке предпочтения. diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, и diffie-hellman-group-exchange-sha1
hostkey Список методов ключей хоста, разделенных запятой, в порядке предпочтения. ssh-rsa и ssh-dss
client_to_server Ассоциативный массив, содержащий настройки шифрования, сжатия и метода имитовставки ("message authentication code" или MAC) для посылки сообщений от клиента к серверу.  
server_to_client Ассоциативный массив, содержащий настройки шифрования, сжатия и метода имитовставки ("message authentication code" или MAC) для посылки сообщений от сервера к клиенту.  

* - Поддерживаемые значения зависят от методов, поддерживаемых базовой библиотекой. Более подробно читайте документацию по » libssh2.

client_to_server и server_to_client могут быть ассоциативными массивами, содержащими любой или же все нижеперечисленные параметры.
Индекс Что обозначает Допустимые значения*
crypt Список методов шифромания, разделенных запятой, в порядке предпочтения. rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, и none**
comp Список методов сжатия, разделенных запятой, в порядке предпочтения. zlib и none
mac Список методов MAC, разделенных запятой, в порядке предпочтения. hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, и none**

Замечание: Метод "none" для шифромания и MAC

В целях безопасности, none отключен в базовой библиотеке » libssh2, если вы не разрешили его самостоятельно на этепе сборки, выставив соответствующие ключи ./configure. Смотрите документацию по базовой библиотеки для более подробной информации.

callbacks

callbacks может быть ассоциативным массивом, содержащим любой или же все нижеперечисленные параметры

Параметры callback-функции
Индекс Что обозначает Прототип
ignore Имя функции, вызываемой после получения пакета SSH2_MSG_IGNORE void ignore_cb($message)
debug Имя функции, вызываемой после получения пакета SSH2_MSG_DEBUG void debug_cb($message, $language, $always_display)
macerror Имя функции, вызываемой если пакет получен, но MAC не удался. Если callback-функция вернет TRUE, несовпадение будет проигнорировано, в обратном случае соединение будет оборвано. bool macerror_cb($packet)
disconnect Имя функции, вызываемой после получения пакета SSH2_MSG_DISCONNECT void disconnect_cb($reason, $message, $language)

Возвращаемые значения

Возвращает ресурс в случае успеха и FALSE если нет.

Примеры

Пример #1 Пример ssh2_connect()

Откроем соединение принудительно успользуя такие настройки: 3des-cbc при посылке пакетов, шифр aes любой силы при получении пакетов, без сжатия в обоих направлениях и обмен ключами Group1.

<?php
/* JОповещаем пользователя, если сервер прервал соединение */
function my_ssh_disconnect($reason$message$language) {
  
printf("Server disconnected with reason code [%d] and message: %s\n",
         
$reason$message);
}

$methods = array(
  
'kex' => 'diffie-hellman-group1-sha1',
  
'client_to_server' => array(
    
'crypt' => '3des-cbc',
    
'comp' => 'none'),
  
'server_to_client' => array(
    
'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    
'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection ssh2_connect('shell.example.com'22$methods$callbacks);
if (!
$connection) die('Connection failed');
?>

Смотрите также