私はSSH-DSS
キーを使用しています。ポートは2222
です。私は公開鍵/秘密鍵(peagent)とユーザ名を使用して私のマシンからwinscpを介して接続することができます。 (秘密鍵はパスフレーズなし)公開鍵がエラーなしで失敗するSFTP
しかし、私は同じことをPHPスクリプトで試しても動作しません。エラーメッセージは表示されません。 ssh2_auth_pubkey_file()
はblank
/false
を返します。だから、スクリプトが
公開鍵認証で終わりでは
エラーをデバッグするためのいずれかの方法がありますを失敗しましたか?
公開鍵/秘密鍵はputtygenで生成されます。ここで
は、私が使用しているコードスニペットです:
$methods = array('hostkey' => 'ssh-dss');
$connection = ssh2_connect('sftp.hostname.com', 2222, $methods);
if (!$connection) die('Connection failed');
$publicKeyPath = "./pubKey-OpenSSH";
$privateKeyPath = "./priKey.ppk";
echo file_get_contents($publicKeyPath);
echo "<hr />";
echo file_get_contents($privateKeyPath);
echo "<hr />";
if(ssh2_auth_pubkey_file($connection, 'USERNAME', $publicKeyPath, $privateKeyPath, ""))
{
echo "<br /><br /><b>Public Key Authentication Successful</b>\n";
}
else
{
print_r($connection);
die('<br /><br />Public Key Authentication Failed');
}