我只能通过命令行使用私钥登录服务器。为什么此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 SSH2函数没有直接的经验。但是PHP ssh2_auth_pubkey_file
内部调用ssh2_auth_pubkey_file
,其文档中说明了libssh2_userauth_publickey_fromfile_ex
from libssh2参数: