ssh2_connect

(PECL ssh2 >= 0.9.0)

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

Описание

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

Устанавливает соединение с сервером по 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
/* Оповещаем пользователя, если сервер прервал соединение */
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('Не удалось установить соединение');
?>

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

  • ssh2_fingerprint() - Получение отпечатка удаленного сервера
  • ssh2_auth_none() - Аутентификация как "none"
  • ssh2_auth_password() - Аутентификация через SSH с использованием обычного пароля
  • ssh2_auth_pubkey_file() - Аутентификация с открытым ключем
  • ssh2_disconnect() - Закрыть соединение с удаленным сервером SSH