php ssh 连接 phpseclib

标签 php linux ssh xampp phpseclib

系统: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 中),所以:
问题:
为什么我没有得到任何输出(用户、主机名)? 是否有其他/更好的方法来检查我是否正确连接?

最佳答案

看起来您正在获得输出。 (M4300-28G-PoE+) > 是您获得的输出,您正在为您尝试运行的两个命令获得它。

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,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594316/

相关文章:

sockets - 在没有 SSL 的情况下保护现有套接字连接的最佳实践

c - C 标准库中包含什么?

linux - 格式化字符串前导零——UNIX 脚本

python - 使用结构运行子进程时出现 EOFError

php - 即使在 PHP IF.. 语句之后,选择选项仍然出现在页面上

linux - 如何使用来自外部服务器 linux 的数据启动本地程序

shell - 如何将文件从一台服务器直接下载到另一台服务器?

php - 为什么网站使用随机字母数字 ID 而不是数据库 ID 来识别内容?

php - SELECT DISTINCT 名称但返回所有数据

php - 你如何解决PHP中的 "unstructured"导航?