array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.ssh2-publickey-add.php', 1 => 'ssh2_publickey_add', ), 'up' => array ( 0 => 'ref.ssh2.php', 1 => 'Функции SSH2', ), 'prev' => array ( 0 => 'function.ssh2-poll.php', 1 => 'ssh2_poll', ), 'next' => array ( 0 => 'function.ssh2-publickey-init.php', 1 => 'ssh2_publickey_init', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/ssh2/functions/ssh2-publickey-add.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ssh2 >= 0.10)
ssh2_publickey_add — Добавляет авторизованный открытый ключ
$pkey
,$algoname
,$blob
,$overwrite
= false
,$attributes
= ?Замечание: Через подсистему открытых ключей управляют открытыми ключами на сервере, на котором клиент уже прошёл аутентификацию. Вместо этого для аутентификации с открытым ключом на удалённой системе вызывают функцию ssh2_auth_pubkey_file().
pkey
Ресурс подсистемы открытого ключа, созданный с помощью ssh2_publickey_init().
algoname
Алгоритм ключа: ssh-dss, ssh-rsa
blob
Бинарная строка, содержащая открытый ключ
overwrite
Нужно ли перезаписать ключ, если он уже есть?
attributes
Ассоциативный массив атрибутов, присваиваемых открытому ключу. Список поддерживаемых атрибутов ищите по словам "ietf-secsh-publickey-subsystem". Для указания какого-либо атрибута обязательным, поставьте перед именем звёздочку. Если сервер не поддерживает какой-либо атрибут, помеченный обязательным - это прервёт процесс добавления.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Добавляем открытый ключ с помощью ssh2_publickey_add()
<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);
$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');
ssh2_publickey_add($pkey, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>