ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectПодключение к SSH-серверу

Описание

ssh2_connect(
    string$host,
    int$port = 22,
    array$methods = ?,
    array$callbacks = ?
): resource|false

Устанавливает соединение с сервером по 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_IGNOREvoid ignore_cb($message)
debug Имя функции, вызываемой после получения пакета SSH2_MSG_DEBUGvoid debug_cb($message, $language, $always_display)
macerror Имя функции, вызываемой если пакет получен, но MAC не удался. Если callback-функция вернёт true, несовпадение будет проигнорировано, в обратном случае соединение будет оборвано. bool macerror_cb($packet)
disconnect Имя функции, вызываемой после получения пакета SSH2_MSG_DISCONNECTvoid disconnect_cb($reason, $message, $language)

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

Возвращает ресурс в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

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

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

<?php

function my_ssh_disconnect($reason, $message, $language) {
printf("Сервер отключился с кодом причины [%d] и сообщением: %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('Не удалось установить соединение');
?>

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

To Top