diff --git a/reference/ssh2/functions/ssh2-auth-pubkey-file.xml b/reference/ssh2/functions/ssh2-auth-pubkey-file.xml index 6776ac125..359da70f5 100644 --- a/reference/ssh2/functions/ssh2-auth-pubkey-file.xml +++ b/reference/ssh2/functions/ssh2-auth-pubkey-file.xml @@ -1,10 +1,10 @@ - + ssh2_auth_pubkey_file - Аутентификация с открытым ключом + Аутентифицирует клиента путём считывания открытого ключа из файла @@ -18,7 +18,7 @@ stringpassphrase - Аутентификация с открытым ключом, сохранённом в файле. + Функция аутентифицирует клиента по открытому ключу, который считывает из файла. @@ -29,8 +29,8 @@ session - Идентификатор соединения SSH, полученный из - ssh2_connect. + Идентификатор канала SSH-соединения, который вернула + функция ssh2_connect. @@ -38,6 +38,7 @@ username + Имя пользователя, от лица которого требуется выполнить аутентификацию на удалённом сервере. @@ -45,7 +46,7 @@ pubkeyfile - Открытый ключ в формате OpenSSH. Должен выглядеть примерно так: + Открытый ключ в формате OpenSSH, строка наподобие: ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110 @@ -56,6 +57,7 @@ privkeyfile + Путь к файлу закрытого OpenSSH-ключа. @@ -63,8 +65,9 @@ passphrase - Если privkeyfile зашифрован (как должен бы), - то необходимо предоставить passphrase. + Парольная фраза для расшифровки закрытого ключа privkey. + Парольную фразу передают в параметр passphrase, + только если выполняются требования безопасности и закрытый ключ хранится в зашифрованном виде. @@ -81,20 +84,24 @@ &reftitle.examples; - Аутентификация с открытым ключом + Пример аутентификации по открытому ключу 'ssh-rsa')); -if (ssh2_auth_pubkey_file($connection, 'username', - '/home/username/.ssh/id_rsa.pub', - '/home/username/.ssh/id_rsa', 'secret')) { - echo "Успешная аутентификация с открытым ключом\n"; +$connection = ssh2_connect('shell.example.com', 22, array('hostkey' => 'ssh-rsa')); + +if (ssh2_auth_pubkey_file( + $connection, + 'username', + '/home/username/.ssh/id_rsa.pub', + '/home/username/.ssh/id_rsa', + 'secret' +)) { + echo "Клиент прошёл аутентификацию по открытому ключу\n"; } else { - die('Неудачная аутентификация с открытым ключом'); + die('Открытый ключ не подтвердил подлинность клиента'); } -?> ]]> @@ -104,13 +111,23 @@ if (ssh2_auth_pubkey_file($connection, 'username', &reftitle.notes; - Основная библиотека libssh не поддерживает частичные аутентификации очень чисто. - То есть, если вам нужно предоставить как открытый ключ, так и пароль, он будет выглядеть так, как если бы эта функция потерпела неудачу. В данном конкретном случае неудачный вызов - может означать, что аутентификация не завершена. Вам нужно игнорировать это неудачное выполнение, продолжить работу и вызвать ssh2_auth_password для завершения аутентификации. + Библиотека libssh, на базе которой работает PHP-модуль SSH2, не поддерживает + частичное подтверждение подлинности на серверах с многофакторной аутентификацией, + при которой требуется проверка и открытого ключа, и пароля. Поэтому на шаге проверки + открытого ключа возврат значения &false; часто указывает не на ошибку, а только на незавершённость процесса аутентификации. + При многоступенчатой аутентификации ошибку игнорируют + и вызывают функцию ssh2_auth_password, чтобы завершить аутентификацию. + + &reftitle.seealso; + + ssh2_auth_pubkey + + + + + + + ssh2_auth_pubkey + Аутентифицирует клиента по открытому ключу в переменной + + + + &reftitle.description; + + boolssh2_auth_pubkey + resourcesession + stringusername + stringpubkey + stringprivkey + stringpassphrase + + + Функция аутентифицирует клиента по открытому ключу, который содержит переменная. + + + + + &reftitle.parameters; + + + session + + + Идентификатор канала SSH-соединения, который вернула + функция ssh2_connect. + + + + + username + + + Имя пользователя, от лица которого требуется выполнить аутентификацию на удалённом сервере. + + + + + pubkey + + + Открытый ключ в формате OpenSSH, строка наподобие: + ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110 + + + + + privkey + + + Закрытый OpenSSH-ключ, который начинается со строки: + -----BEGIN RSA PRIVATE KEY----- + + + + + passphrase + + + Парольная фраза для расшифровки закрытого ключа privkey. + Парольную фразу передают в параметр passphrase, + только если выполняются требования безопасности и закрытый ключ хранится в зашифрованном виде. + + + + + + + + &reftitle.returnvalues; + + &return.success; + + + + + &reftitle.examples; + + Пример аутентификации с открытым ключом + + 'ssh-rsa')); +$publicKey = file_get_contents('/home/username/.ssh/id_rsa.pub'); +$privateKey = file_get_contents('/home/username/.ssh/id_rsa'); + +if (ssh2_auth_pubkey( + $connection, + 'username', + $publicKey, + $privateKey, + 'secret' +)) { + echo "Клиент прошёл аутентификацию по открытому ключу\n"; +} else { + die('Открытый ключ не подтвердил подлинность клиента'); +} +]]> + + + + + + &reftitle.notes; + + + Библиотека libssh, на базе которой работает PHP-модуль SSH2, не поддерживает + частичное подтверждение подлинности на серверах с многофакторной аутентификацией, + при которой требуется проверка и открытого ключа, и пароля. Поэтому на шаге проверки + открытого ключа возврат значения &false; часто указывает не на ошибку, а только на незавершённость процесса аутентификации. + При многоступенчатой аутентификации ошибку игнорируют + и вызывают функцию ssh2_auth_password, чтобы завершить аутентификацию. + + + + + + &reftitle.seealso; + + ssh2_auth_pubkey_file + + + + + diff --git a/reference/ssh2/functions/ssh2-connect.xml b/reference/ssh2/functions/ssh2-connect.xml index 1d8c51d68..0212291bb 100644 --- a/reference/ssh2/functions/ssh2-connect.xml +++ b/reference/ssh2/functions/ssh2-connect.xml @@ -1,10 +1,10 @@ - + ssh2_connect - Подключение к SSH-серверу + Подключается к серверу по протоколу SSH @@ -17,12 +17,12 @@ arraycallbacks - Устанавливает соединение с сервером по SSH. + Функция устанавливает соединение с сервером по протоколу SSH. - После соединения, пользователь должен проверить ключ сервера, используя функцию - ssh2_fingerprint, и после этого авторизоваться, используя - пароль или открытый ключ. + После установки соединения клиенту потребуется проверить ключ хоста сервера + функцией ssh2_fingerprint, + а затем пройти аутентификацию по паролю или открытому ключу. @@ -33,6 +33,7 @@ host + Хост. @@ -40,6 +41,7 @@ port + Номер порта. @@ -47,17 +49,16 @@ methods - Параметр methods может быть ассоциативным массивом, - содержащим до четырёх записей, перечисленных ниже. + Параметр methods — ассоциативный массив, + который содержит одно или все следующие значения. - Параметр <parameter>methods</parameter> может быть ассоциативным - массивом, содержащим от одного до четырёх параметров + Допустимые значения параметра <parameter>methods</parameter> Индекс - Что обозначает + Обозначение Допустимые значения* @@ -65,40 +66,40 @@ kex - Список методов обмена ключами, разделённых запятой, в порядке предпочтения. + Список значений для объявления способов обмена ключами. Значения разделяют запятой и указывают в порядке убывания приоритета. diffie-hellman-group1-sha1, - diffie-hellman-group14-sha1, и - diffie-hellman-group-exchange-sha1 + diffie-hellman-group14-sha1 + и diffie-hellman-group-exchange-sha1 hostkey - Список методов ключей хоста, разделённых запятой, - в порядке предпочтения. + Список значений для объявления методов проверки подлинности ключей хоста. + Значения разделяют запятой и указывают в порядке убывания приоритета. - ssh-rsa и - ssh-dss + ssh-rsa + и ssh-dss client_to_server - Ассоциативный массив, содержащий настройки шифрования, сжатия и - метода имитовставки ("message authentication code" или MAC) для - сообщений, отправленных клиентом серверу. + Ассоциативный массив с настройками шифрования, + сжатия и метода имитовставки (Англ. Message Authentication Code, сокр. MAC) + для сообщений в направлении клиент — сервер. server_to_client - Ассоциативный массив, содержащий настройки шифрования, сжатия и - метода имитовставки ("message authentication code" или MAC) для - сообщений, отправленных сервером клиенту. + Ассоциативный массив с настройками шифрования, + сжатия и метода имитовставки + для сообщений в направлении сервер — клиент. @@ -106,27 +107,27 @@
- * - Поддерживаемые значения зависят от методов, поддерживаемых базовой библиотекой. - Более подробно читайте документацию по libssh2. + * — Поддерживаемые значения зависят от методов, которые поддерживает базовая библиотека. + Дополнительную информацию даёт документация к libssh2. - <parameter>client_to_server</parameter> и - <parameter>server_to_client</parameter> могут быть ассоциативными массивами, - содержащими любой или же все нижеперечисленные параметры. + <parameter>client_to_server</parameter> + и <parameter>server_to_client</parameter> — ассоциативные массивы + с одним или всеми следующими параметрами. Индекс - Что обозначает + Обозначение Допустимые значения* crypt - Список методов шифрования, разделённых запятой, в порядке предпочтения. + Список значений для объявления методов шифрования. Значения разделяют запятой и указывают в порядке убывания приоритета. rijndael-cbc@lysator.liu.se, aes256-cbc, @@ -135,39 +136,39 @@ 3des-cbc, blowfish-cbc, cast128-cbc, - arcfour и - none** + arcfour + и none** comp - Список методов сжатия, разделённых запятой, в порядке предпочтения. + Список методов для объявления способов сжатия. Значения разделяют запятой и указывают в порядке убывания приоритета. - zlib и - none + zlib + и none mac - Список методов MAC, разделённых запятой, в порядке предпочтения. + Список методов для объявления способа вычисления MAC. Значения разделяют запятой и указывают в порядке убывания приоритета. hmac-sha1, hmac-sha1-96, hmac-ripemd160, - hmac-ripemd160@openssh.com и - none** + hmac-ripemd160@openssh.com + и none**
- Метод шифрования "<literal>none</literal>" и MAC + Значение "<literal>none</literal>" вместо алгоритма шифрования и способа вычисления MAC - В целях безопасности none отключён в базовой библиотеке - libssh2, если вы не разрешили его - самостоятельно на этапе сборки, используя соответствующие ключи ./configure. - Смотрите документацию по базовой библиотеки для более подробной информации. + В библиотеке libssh2, на базе которой работает PHP-модуль SSH2, + поддержку значения none преднамеренно отключают по соображениям безопасности. + Поддержку значения добавляют на этапе сборки: указывают в команде ./configure параметр, который включает поддержку значения. + Дополнительную информацию даёт документация к базовой библиотеке.
@@ -176,8 +177,8 @@ callbacks - callbacks может быть ассоциативным массивом, - содержащим любой или же все нижеперечисленные параметры + Параметр callbacks — ассоциативный массив, + который содержит один или все следующие параметры: Параметры callback-функции @@ -186,7 +187,7 @@ <thead> <row> <entry>Индекс</entry> - <entry>Что обозначает</entry> + <entry>Обозначение</entry> <entry>Прототип</entry> </row> </thead> @@ -194,7 +195,7 @@ <row> <entry>ignore</entry> <entry> - Имя функции, вызываемой после получения пакета + Название функции для вызова при получении пакета <constant>SSH2_MSG_IGNORE</constant> </entry> <entry>void ignore_cb($message)</entry> @@ -202,7 +203,7 @@ <row> <entry>debug</entry> <entry> - Имя функции, вызываемой после получения пакета + Название функции для вызова при получении пакета <constant>SSH2_MSG_DEBUG</constant> </entry> <entry>void debug_cb($message, $language, $always_display)</entry> @@ -210,17 +211,17 @@ <row> <entry>macerror</entry> <entry> - Имя функции, вызываемой если пакет получен, но - MAC не удался. Если callback-функция вернёт &true;, - несовпадение будет проигнорировано, в обратном случае - соединение будет оборвано. + Название функции для вызова при получении пакета + с неправильным кодом аутентификации сообщения (англ. Message Authentication Code, сокр. MAC). + При возврате из callback-функции значения &true; несоответствие MAC игнорируется, + иначе соединение обрывается. </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> @@ -237,42 +238,51 @@ <refsect1 role="returnvalues"> &reftitle.returnvalues; <simpara> - Возвращает ресурс в случае успешного выполнения или &false; в случае возникновения ошибки. + Функция возвращает ресурс, если выполнилась успешно, или &false;, если возникла ошибка. </simpara> </refsect1> <refsect1 role="examples"> &reftitle.examples; <example> - <title>Пример <function>ssh2_connect</function> + Пример установки соединения функцией <function>ssh2_connect</function> - Откроем соединение, принудительно используя такие настройки: 3des-cbc при отправке - пакетов, шифр aes любой силы при получении пакетов, без сжатия в обоих направлениях - и обмен ключами Group1. + Пример открывает соединение со следующими настройками: при отправке шифровать пакеты по алгоритму 3DES-CBC, + принимать пакеты с AES-шифром произвольной стойкости, не применять сжатие в обоих направлениях + и обмениваться ключами по спецификации Group1. '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')); + '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('Не удалось установить соединение'); -?> +if (!$connection) { + die('Невозможно установить соединение'); +} ]]> @@ -284,6 +294,7 @@ if (!$connection) die('Не удалось установить соединен ssh2_fingerprintssh2_auth_nonessh2_auth_password + ssh2_auth_pubkeyssh2_auth_pubkey_filessh2_disconnect