在我的VPN上,我有一个远程服务器和一个远程路由器(运行带有API的RouterOS并支持ssh连接)。我想要的是编写一个php脚本并将其部署在服务器上,以便它使用ip地址和登录凭据连接到远程路由器,然后运行一些命令。
我在互联网上看到有一个libssh2.php库的解决方案,但我无法弄清楚如何在服务器上安装/使用甚至测试它。服务器正在运行CentOS。
提前谢谢!!!
答案 0 :(得分:1)
我认为你最好用phpseclib, a pure PHP SSH implementation。它比libssh2具有许多优点:
http://phpseclib.sourceforge.net/ssh/compare.html
以下是一个例子:
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>
答案 1 :(得分:0)
之前我这样做过,只是直接使用SSH命令。例如:
$sshCmd = "ssh user@1.2.3.45 \"ls -la ~\"";
exec($sshCmd, $output, $errorCode);
echo "Error code: $errorCode\n";
echo "Output: " . implode("\n", $output);
如果要运行更复杂的脚本,可以将其放在.sh脚本中然后通过bash运行:
$sshCmd = "ssh user@1.2.3.45 'bash -s' < \"/path/to/script.sh\"";
exec($sshCmd, $output, $errorCode);
echo "Error code: $errorCode\n";
echo "Output: " . implode("\n", $output);