ssh2_auth_pubkey_file
公開鍵を使用した認証を行う
説明
bool ssh2_auth_pubkey_file(
resource $session,
string $username,
string $pubkeyfile,
string $privkeyfile,
string $passphrase = ?
)
ファイルから読み込んだ公開鍵を使用した認証を行います。
パラメータ
-
session
-
ssh2_connect のコールによって取得した
SSH 接続リンク ID。
-
username
-
-
pubkeyfile
-
公開鍵ファイル。OpenSSH 形式で表す必要があり、たとえば次のようになります。
ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
-
privkeyfile
-
-
passphrase
-
もし、
privkeyfile が暗号化されている
(そうあるべきです) 場合、パスフレーズも引数に渡す必要があります。
戻り値
成功した場合に true を、失敗した場合に false を返します。
例
例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
を呼ばなければ認証は完了しません。