我正在尝试使用 PHP 的 ssh2 函数连接到另一台机器。我知道 ssh 密钥是在没有密码的情况下创建的并且分布正确,我可以ssh user@host
在我机器上的终端中连接到服务器。
PHP 函数尝试使用 ssh 密钥文件连接到 IP 地址:-
function minnerConnect($miner_serial) {
$port = '7822';
$miner_ip = $this->getMinerIp($miner_serial);
$methods = array(
'kex' => 'diffie-hellman-group1-sha1',
'hostkey' => 'ssh-dss',
'client_to_server' => array(
'crypt' => '3des-cbc',
'mac' => 'hmac-md5',
'comp' => 'none'),
'server_to_client' => array(
'crypt' => '3des-cbc',
'mac' => 'hmac-md5',
'comp' => 'none'));
$connection = ssh2_connect($miner_ip, $port, $methods);
if (ssh2_auth_pubkey_file($connection, 'root',
'/root/.ssh/id_dsa.pub',
'/root/.ssh/id_dsa','')) {
echo "Public Key Authentication Successful\n";
} else {
echo "Public Key Authentication Failed";
}
但显示的错误是:-
(!)警告:ssh2_auth_pubkey_file():使用公钥的root身份验证失败:回调在第95行的/var/www/application/models/miner_model.php中返回错误
第 95 行是'/root/.ssh/id_dsa','')) {
.
有人可以建议修复吗?