使用公钥进行身份验证

问题描述 投票:0回答:1

因此,我试图使用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”时,我可以毫无问题地连接到服务器,但是公私钥认证给我带来了很多问题...

php private-key public-key libssh2
1个回答
0
投票

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

  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
© www.soinside.com 2019 - 2024. All rights reserved.