使用公钥进行身份验证

时间:2019-11-06 08:58:12

标签: php private-key public-key libssh2

因此,简而言之,我正在尝试使用PHP的“ ssh2_auth_pubkey_file”功能登录到远程服务器。而且它永远不会通过身份验证。我的密钥是PuTTYgen生成的,我试图在本地访问它们,但无法正常工作。

我已经阅读了多篇StackOverflow文章和其他论坛,但找不到任何解决方案

ssh2_auth_pubkey_file(
    $conn,
    $sftpUsername,
    'C:/my/path/public_key.pub',
    'C:/my/path/private_key.ppk'
);

当我使用“ ssh2_auth_password”时,我可以毫无问题地连接到服务器,但是公私钥认证给我带来了很多麻烦...

1 个答案:

答案 0 :(得分:0)

我希望它可以帮助某人 因为我自己花了很多时间 最终为我解决的问题是做两件事

  1. 请确保www数据用户(在Apache中)具有对“ id_rsa.pub”和“ id_rsa”文件的读取访问权限,请勿将它们放在任何站点HTTP文件夹中。
  2. 确保您的私钥为RSA格式,并且没有任何密码/短语

通过运行此命令将“ BEGIN OPENSSH PRIVATE KEY”转换为“ BEGIN RSA PRIVATE KEY”

ssh-keygen -p -m PEM -f PRIVATE_KEY