1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 16:52:12 +01:00
Files
archived-doc-ru/reference/ssh2/functions/ssh2-connect.xml
2022-07-29 11:40:22 +03:00

325 lines
12 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: d6352b08091d6b6c3795fd95cbfe282046ef7681 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.ssh2-connect">
<refnamediv>
<refname>ssh2_connect</refname>
<refpurpose>Подключение к SSH-серверу</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>resource</type><type>false</type></type><methodname>ssh2_connect</methodname>
<methodparam><type>string</type><parameter>host</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>port</parameter><initializer>22</initializer></methodparam>
<methodparam choice="opt"><type>array</type><parameter>methods</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>callbacks</parameter></methodparam>
</methodsynopsis>
<para>
Устанавливает соединение с сервером по SSH.
</para>
<para>
После соединения, пользователь должен проверить ключ сервера, используя функцию
<function>ssh2_fingerprint</function>, и после этого авторизоваться, используя
пароль или открытый ключ.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>host</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>port</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>methods</parameter></term>
<listitem>
<para>
Параметр <parameter>methods</parameter> может быть ассоциативным массивом,
содержащим до четырёх записей, перечисленных ниже.
</para>
<para>
<table>
<title>Параметр <parameter>methods</parameter> может быть ассоциативным
массивом, содержащим от одного до четырёх параметров</title>
<tgroup cols="3">
<thead>
<row>
<entry>Индекс</entry>
<entry>Что обозначает</entry>
<entry>Допустимые значения*</entry>
</row>
</thead>
<tbody>
<row>
<entry>kex</entry>
<entry>
Список методов обмена ключами, разделённых запятой, в порядке предпочтения.
</entry>
<entry>
<literal>diffie-hellman-group1-sha1</literal>,
<literal>diffie-hellman-group14-sha1</literal>, и
<literal>diffie-hellman-group-exchange-sha1</literal>
</entry>
</row>
<row>
<entry>hostkey</entry>
<entry>
Список методов ключей хоста, разделённых запятой,
в порядке предпочтения.
</entry>
<entry>
<literal>ssh-rsa</literal> и
<literal>ssh-dss</literal>
</entry>
</row>
<row>
<entry>client_to_server</entry>
<entry>
Ассоциативный массив, содержащий настройки шифрования, сжатия и
метода имитовставки ("message authentication code" или MAC) для
сообщений, отправленных клиентом серверу.
</entry>
<entry/>
</row>
<row>
<entry>server_to_client</entry>
<entry>
Ассоциативный массив, содержащий настройки шифрования, сжатия и
метода имитовставки ("message authentication code" или MAC) для
сообщений, отправленных сервером клиенту.
</entry>
<entry/>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
* - Поддерживаемые значения зависят от методов, поддерживаемых базовой библиотекой.
Более подробно читайте документацию по <link xlink:href="&url.libssh2;">libssh2</link>.
</para>
<para>
<table>
<title>
<parameter>client_to_server</parameter> и
<parameter>server_to_client</parameter> могут быть ассоциативными массивами,
содержащими любой или же все нижеперечисленные параметры.
</title>
<tgroup cols="3">
<thead>
<row>
<entry>Индекс</entry>
<entry>Что обозначает</entry>
<entry>Допустимые значения*</entry>
</row>
</thead>
<tbody>
<row>
<entry>crypt</entry>
<entry>Список методов шифрования, разделённых запятой, в порядке предпочтения.</entry>
<entry>
<literal>rijndael-cbc@lysator.liu.se</literal>,
<literal>aes256-cbc</literal>,
<literal>aes192-cbc</literal>,
<literal>aes128-cbc</literal>,
<literal>3des-cbc</literal>,
<literal>blowfish-cbc</literal>,
<literal>cast128-cbc</literal>,
<literal>arcfour</literal> и
<literal>none**</literal>
</entry>
</row>
<row>
<entry>comp</entry>
<entry>Список методов сжатия, разделённых запятой, в порядке предпочтения.</entry>
<entry>
<literal>zlib</literal> и
<literal>none</literal>
</entry>
</row>
<row>
<entry>mac</entry>
<entry>Список методов MAC, разделённых запятой, в порядке предпочтения.</entry>
<entry>
<literal>hmac-sha1</literal>,
<literal>hmac-sha1-96</literal>,
<literal>hmac-ripemd160</literal>,
<literal>hmac-ripemd160@openssh.com</literal> и
<literal>none**</literal>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
<note>
<title>Метод шифрования "<literal>none</literal>" и MAC</title>
<para>
В целях безопасности <literal>none</literal> отключён в базовой библиотеке
<link xlink:href="&url.libssh2;">libssh2</link>, если вы не разрешили его
самостоятельно на этапе сборки, используя соответствующие ключи ./configure.
Смотрите документацию по базовой библиотеки для более подробной информации.
</para>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>callbacks</parameter></term>
<listitem>
<para>
<parameter>callbacks</parameter> может быть ассоциативным массивом,
содержащим любой или же все нижеперечисленные параметры
<table>
<title>
Параметры callback-функции
</title>
<tgroup cols="3">
<thead>
<row>
<entry>Индекс</entry>
<entry>Что обозначает</entry>
<entry>Прототип</entry>
</row>
</thead>
<tbody>
<row>
<entry>ignore</entry>
<entry>
Имя функции, вызываемой после получения пакета
<constant>SSH2_MSG_IGNORE</constant>
</entry>
<entry>void ignore_cb($message)</entry>
</row>
<row>
<entry>debug</entry>
<entry>
Имя функции, вызываемой после получения пакета
<constant>SSH2_MSG_DEBUG</constant>
</entry>
<entry>void debug_cb($message, $language, $always_display)</entry>
</row>
<row>
<entry>macerror</entry>
<entry>
Имя функции, вызываемой если пакет получен, но
MAC не удался. Если callback-функция вернёт &true;,
несовпадение будет проигнорировано, в обратном случае
соединение будет оборвано.
</entry>
<entry>bool macerror_cb($packet)</entry>
</row>
<row>
<entry>disconnect</entry>
<entry>
Имя функции, вызываемой после получения пакета
<constant>SSH2_MSG_DISCONNECT</constant>
</entry>
<entry>void disconnect_cb($reason, $message, $language)</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает ресурс в случае успешного выполнения или &false; в случае возникновения ошибки.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример <function>ssh2_connect</function></title>
<para>
Откроем соединение, принудительно используя такие настройки: 3des-cbc при отправке
пакетов, шифр aes любой силы при получении пакетов, без сжатия в обоих направлениях
и обмен ключами Group1.
</para>
<programlisting role="php">
<![CDATA[
<?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('Не удалось установить соединение');
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>ssh2_fingerprint</function></member>
<member><function>ssh2_auth_none</function></member>
<member><function>ssh2_auth_password</function></member>
<member><function>ssh2_auth_pubkey_file</function></member>
<member><function>ssh2_disconnect</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->