我正在使用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;
当我启动命令时,我收到消息“OK”并且$ stream变量写道:“Ressource id#5” 我不知道为什么它不起作用。我使用正确的ssh命令在bash中测试了命令:
ssh user@ip_address "command"
它有效。 我在等你的帮忙, 谢谢, Cordialement,
答案 0 :(得分:2)
我想你可能会有更多的运气phpseclib, a pure PHP SSH implementation。例如
<?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'");