公開鍵認証時のエラーについて


PHPのssh2_auth_pubkey_file関数を使用して公開鍵認証を行いたいのですが、  
以下のメッセージが出力され認証できず、困っています。  
ここが原因ではないかといったアドバイス等があればよろしくお願い致します。

[code]

    $connection = ssh2_connect($host, $port);
    if (!$connection) {
       // 接続失敗
    }
    
    $user = 'user';
    $pubKey = '/home/user/.ssh/authorized_keys';
    $priKey = '../id_rsa';
    
    if (!ssh2_auth_pubkey_file($connection, $user, $pubKey, $priKey)) {　←★ここでエラー
       // 認証失敗
    }
    
[/code]

> Warning Error: ssh2_auth_pubkey_file(): Authentication failed for user using
> public key: Unable to open public key file

以下に公開鍵を配置しており、各パーミッションはuserが755、.sshが700、authorized_keysが600です。  
/home/user/.ssh/authorized_keys

※TeraTeamからは公開鍵認証できています。




PHP が Apache 等の web
サーバの権限で動作している場合には、ユーザーのホームディレクトリ配下のファイルはアクセス権限の関係で読み取れていない可能性があります。

web サーバの動作ユーザー/グループは環境によって異なりますが、www-data, httpd, apache, nginx 等になります。

公開鍵を上記のユーザーがアクセスできる場所に配置するか、もしくは元のファイルに対して上記ユーザー/グループでアクセスできるように権限を付与する必要があります。

**参考:**  
[ssh2_auth_pubkey_file authentication always fails - Stack
Overflow](https://stackoverflow.com/q/23880078/2322778)

