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 — ассоциативный массив,
+ который содержит одно или все следующие значения.
- Параметр methods может быть ассоциативным
- массивом, содержащим от одного до четырёх параметров
+ Допустимые значения параметра methodsИндекс
- Что обозначает
+ ОбозначениеДопустимые значения*
@@ -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-sha1hostkey
- Список методов ключей хоста, разделённых запятой,
- в порядке предпочтения.
+ Список значений для объявления методов проверки подлинности ключей хоста.
+ Значения разделяют запятой и указывают в порядке убывания приоритета.
- ssh-rsa и
- ssh-dss
+ ssh-rsa
+ и ssh-dssclient_to_server
- Ассоциативный массив, содержащий настройки шифрования, сжатия и
- метода имитовставки ("message authentication code" или MAC) для
- сообщений, отправленных клиентом серверу.
+ Ассоциативный массив с настройками шифрования,
+ сжатия и метода имитовставки (Англ. Message Authentication Code, сокр. MAC)
+ для сообщений в направлении клиент — сервер.
server_to_client
- Ассоциативный массив, содержащий настройки шифрования, сжатия и
- метода имитовставки ("message authentication code" или MAC) для
- сообщений, отправленных сервером клиенту.
+ Ассоциативный массив с настройками шифрования,
+ сжатия и метода имитовставки
+ для сообщений в направлении сервер — клиент.
@@ -106,27 +107,27 @@
- * - Поддерживаемые значения зависят от методов, поддерживаемых базовой библиотекой.
- Более подробно читайте документацию по libssh2.
+ * — Поддерживаемые значения зависят от методов, которые поддерживает базовая библиотека.
+ Дополнительную информацию даёт документация к libssh2.
- client_to_server и
- server_to_client могут быть ассоциативными массивами,
- содержащими любой или же все нижеперечисленные параметры.
+ client_to_server
+ и server_to_client — ассоциативные массивы
+ с одним или всеми следующими параметрами.
Индекс
- Что обозначает
+ ОбозначениеДопустимые значения*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
+ и nonemac
- Список методов MAC, разделённых запятой, в порядке предпочтения.
+ Список методов для объявления способа вычисления MAC. Значения разделяют запятой и указывают в порядке убывания приоритета.hmac-sha1,
hmac-sha1-96,
hmac-ripemd160,
- hmac-ripemd160@openssh.com и
- none**
+ hmac-ripemd160@openssh.com
+ и none**
- Метод шифрования "none" и MAC
+ Значение "none" вместо алгоритма шифрования и способа вычисления MAC
- В целях безопасности none отключён в базовой библиотеке
- libssh2, если вы не разрешили его
- самостоятельно на этапе сборки, используя соответствующие ключи ./configure.
- Смотрите документацию по базовой библиотеки для более подробной информации.
+ В библиотеке libssh2, на базе которой работает PHP-модуль SSH2,
+ поддержку значения none преднамеренно отключают по соображениям безопасности.
+ Поддержку значения добавляют на этапе сборки: указывают в команде ./configure параметр, который включает поддержку значения.
+ Дополнительную информацию даёт документация к базовой библиотеке.
@@ -176,8 +177,8 @@
callbacks
- callbacks может быть ассоциативным массивом,
- содержащим любой или же все нижеперечисленные параметры
+ Параметр callbacks — ассоциативный массив,
+ который содержит один или все следующие параметры:
Параметры callback-функции
@@ -186,7 +187,7 @@
Индекс
- Что обозначает
+ ОбозначениеПрототип
@@ -194,7 +195,7 @@
ignore
- Имя функции, вызываемой после получения пакета
+ Название функции для вызова при получении пакета
SSH2_MSG_IGNOREvoid ignore_cb($message)
@@ -202,7 +203,7 @@
debug
- Имя функции, вызываемой после получения пакета
+ Название функции для вызова при получении пакета
SSH2_MSG_DEBUGvoid debug_cb($message, $language, $always_display)
@@ -210,17 +211,17 @@
macerror
- Имя функции, вызываемой если пакет получен, но
- MAC не удался. Если callback-функция вернёт &true;,
- несовпадение будет проигнорировано, в обратном случае
- соединение будет оборвано.
+ Название функции для вызова при получении пакета
+ с неправильным кодом аутентификации сообщения (англ. Message Authentication Code, сокр. MAC).
+ При возврате из callback-функции значения &true; несоответствие MAC игнорируется,
+ иначе соединение обрывается.
bool macerror_cb($packet)disconnect
- Имя функции, вызываемой после получения пакета
+ Название функции для вызова при получении пакета
SSH2_MSG_DISCONNECTvoid disconnect_cb($reason, $message, $language)
@@ -237,42 +238,51 @@
&reftitle.returnvalues;
- Возвращает ресурс в случае успешного выполнения или &false; в случае возникновения ошибки.
+ Функция возвращает ресурс, если выполнилась успешно, или &false;, если возникла ошибка.
&reftitle.examples;
- Пример ssh2_connect
+ Пример установки соединения функцией ssh2_connect
- Откроем соединение, принудительно используя такие настройки: 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