本来是想通过PHP的proc_open和进程进行交互,可是中间的坑太多了,不得不转换一下思路,然后想起来宝塔有网页版SSH客户端,然后研究了一下,嘿嘿,发现能成😁😁😁。
2022-07-22 更新 使用了有名的xterm.js,基本可作为生产使用了。(权限记得做好)
代码尽量详细的说明了,不懂可以问我哈。
前期准备 PECL/ssh2 然后有一个现成的、封装好大部分常用操作的库phpseclib:https://phpseclib.com
通过swoole的协程实现SSH的读和写并发进行以及websocket和浏览器进行通信。
1.安装ssh2拓展库 1.1 Linux安装 首先要安装libssh2(libssh2是一个C 函数库,用来实现SSH2协议。)https://www.libssh2.org
#centos yum install libssh2 libssh2-devel #Ubuntu apt-get install libssh2-1-dev libssh2-1 然后通过pcel安装ssh2拓展 ,不同的PHP对应不同的版本,一定要找准版本(https://pecl.php.net/package/ssh2),如下使用的是1.1.2版本:
pecl install ssh2-1.1.2 如果安装报错,可以尝试安装其他更新或者更旧的版本,当然也可以通过phpize进行手动安装。
1.2 window安装 libssh2好像一般都有,没有就下载丢到系统里,主要是安装ssh2。根据自己PHP的版本去下载,可以看下自己的php版本,以及是32位的还是64位的,32位的下载x86, 64位的下载x64
php.ini中加入 extension=php_ssh2.dll ,完事。
2.swoole安装 3.phpseclib 官网:https://phpseclib.com,composer安装即可:
composer require phpseclib/phpseclib:~3.0