php ssh 连接 phpseclib

Posted

技术标签:

【中文标题】php ssh 连接 phpseclib【英文标题】:php ssh connection phpseclib 【发布时间】:2019-08-31 02:23:16 【问题描述】:

系统:Linux 服务器:XAMPP 目标: ssh 连接到服务器(后来:在这台服务器上做一些事情,不是这个问题的一部分)

测试代码:

 <?php  
    set_include_path(get_include_path().PATH_SEPARATOR.'/home/myusername');
    include('Net/SSH2.php'); 
    $ssh = new Net_SSH2('123.45.6.78'); 
    if (!$ssh->login('user', 'password'))  
    exit('Login Failed'); 
    else 
    echo "connected".'<br>'; 
    echo $ssh->exec('whoami').'<br>';
    echo $ssh->exec('hostname')).'<br>';
       
    ?>

输出: 已连接 (M4300-28G-PoE+) > (M4300-28G-PoE+) > 问题: 我没有收到任何错误(在网站的输出中(见上文)和 /opt/lampp/logs/error_logs 中都没有),所以: 问题: 为什么我没有得到任何输出(用户、主机名)? 是否有其他/更好的方法来检查我是否正确连接?

【问题讨论】:

【参考方案1】:

看起来您正在获得输出。 (M4300-28G-PoE+) &gt; 是你得到的输出,你正在为你试图运行的两个命令得到它。

M4300-28G-PoE+ 是NetGear switch。交换机因没有完整的 SSH 实现而臭名昭著。

我的猜测:如果你想运行命令,你必须使用 phpseclib 的interactive commands:

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

【讨论】:

以上是关于php ssh 连接 phpseclib的主要内容,如果未能解决你的问题,请参考以下文章

本地主机上的 PHPSeclib 公钥认证成功;部署失败

使用 phpseclib 时出现“分段错误”

在路由器上使用ssh2和telnet命令的phpseclib

phpseclib ssh2 pty telnet cisco - 如何推进 - 更多 - “show version”

无法使用密钥身份验证 ssh 到服务器

使用 PHP 进行 SSH 连接