PHP的ssh2_auth_pubkey_file为什么需要公共密钥?

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

我只能通过命令行使用私钥登录服务器。为什么此PHP函数也需要公共密钥?

      $connection = ssh2_connect($server_address, $port, array('hostkey'=>'ssh-rsa'));
      if (!@ssh2_auth_pubkey_file($connection, $username, $public_key_path, $private_key_path, $password))
      {
        echo '<h3 class="error">Unable to authenticate. Check ssh key pair.</h3>';
        break;
      }
      echo '<h3 class="success">Authenticated.</h3>';

我正在使用个人使用测试脚本来检查防火墙设置和在调整和部署新服务器时的访问权限。我大多只是好奇,因为这似乎表明我缺少有关ssh工作原理的信息。但是我也很生气,当我似乎只需要1条路径时,我必须给出2条路径。

我只能通过命令行使用私钥登录服务器。为什么此PHP函数也需要公共密钥? $ connection = ssh2_connect($ server_address,$ port,array('hostkey'=>'...

php ssh ssh-keys
1个回答
0
投票

我对PHP SSH2函数没有直接的经验。但是PHP ssh2_auth_pubkey_file内部调用ssh2_auth_pubkey_file,其文档中说明了libssh2_userauth_publickey_fromfile_ex from libssh2参数:

© www.soinside.com 2019 - 2024. All rights reserved.