array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.ssh2-auth-pubkey-file.php', 1 => 'ssh2_auth_pubkey_file', ), 'up' => array ( 0 => 'ref.ssh2.php', 1 => 'SSH2 関数', ), 'prev' => array ( 0 => 'function.ssh2-auth-password.php', 1 => 'ssh2_auth_password', ), 'next' => array ( 0 => 'function.ssh2-connect.php', 1 => 'ssh2_connect', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/ssh2/functions/ssh2-auth-pubkey-file.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ssh2 >= 0.9.0)
ssh2_auth_pubkey_file — 公開鍵を使用した認証を行う
$session
,$username
,$pubkeyfile
,$privkeyfile
,$passphrase
= ?ファイルから読み込んだ公開鍵を使用した認証を行います。
session
ssh2_connect() のコールによって取得した SSH 接続リンク ID。
username
pubkeyfile
公開鍵ファイル。OpenSSH 形式で表す必要があり、たとえば次のようになります。
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
privkeyfile
passphrase
もし、privkeyfile
が暗号化されている
(そうあるべきです) 場合、パスフレーズも引数に渡す必要があります。
例1 公開鍵を用いた認証
<?php
$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 "Public Key Authentication Successful\n";
} else {
die('Public Key Authentication Failed');
}
?>
注意:
この関数が使っている libssh ライブラリは、部分的な認証のサポートがうまくできません。 公開鍵とパスワードの両方が必要な場合に、まるで関数が失敗したかのように見えてしまいます。 この場合の関数呼び出しの失敗は、単に認証がまだ完了していないということを表しているにすぎません。 この呼び出し失敗は無視し、続けて ssh2_auth_password() を呼ばなければ認証は完了しません。