ssh2_connect
(PECL ssh2 >= 0.9.0)
ssh2_connect — Подключение к SSH-серверу
Описание
$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