Я использую ssh2, чтобы сделать запрос MySQL на удаленном сервере.
Вот мои строки:
$connection = ssh2_connect("ip_address", 22);
if (ssh2_auth_pubkey_file($connection, "user", ".ssh/id_rsa.pub", ".ssh/id_rsa"))
{
echo("Ok");
}
else
{
die("KO");
}
$stream = ssh2_exec($connection, "mysql -u root --password=password -D db -e 'SELECT * FROM table'");
echo $stream;
Когда я запускаю свою команду, у меня появляется сообщение «ОК», а переменная $ stream пишет: «Ressource id # 5». Я не знаю, почему она не работает. Я протестировал команду в bash, используя правильно команду ssh:
ssh user@ip_address "command"
И это сработало.
Я жду вашей помощи,
Спасибо,
Cordialement,
Я думаю, тебе повезет больше phpseclib, чистая реализация PHP SSH. например.
<?php
include('Net/SSH2.php');
include('Crypt/RSA.php');
$ssh = new Net_SSH2("ip_address", 22);
$key = new Crypt_RSA();
$key->loadKey(file_get_contents(".ssh/id_rsa"));
if ($ssh->login('user', $key)) {
echo "Ok";
} else {
die("KO");
}
echo $ssh->exec("mysql -u root --password=password -D db -e 'SELECT * FROM table'");
Других решений пока нет …