PHP CLI记录交互式SSH会话的输出

时间:2011-06-30 07:37:17

标签: ssh php

我一直试图通过PHP CLI脚本来记录交互式SSH会话。我真正想要的就像一个tee命令,整个输出被记录成一个字符串。

我已经尝试了大多数命令来执行外部进程以使其工作。它们要么正常工作,例如passthrupcntl_exec,但是不要让我将输出记录到字符串或数组中,或者它们不向我的终端显示任何输出但仍接受来自STDIN的东西。

我想知道是否有一种方法可以进行交互式ssh会话,即正常工作,但实际上会记录输出以供PHP使用。

由于

3 个答案:

答案 0 :(得分:1)

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("ls -la\n");
echo $ssh->read('username@username:~$');
?>

你可以这样做。

答案 1 :(得分:0)

  

他们要么正常工作,如passthru   和pcntl_exec但不要让我记录   输出到字符串或数组

好吧,你可以使用黑客获取该字符串:

ob_start();
passthru('Your command here');
$result=ob_get_clean();

这很糟糕,但如果您的服务器不是高负载的 - 它应该可以工作。

答案 2 :(得分:0)

尝试使用ObserveIT,它包含一个强大的SSH和Telnet记录器,不能被powerusers阻止