前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP+Swoole实现web版的SSH客户端

PHP+Swoole实现web版的SSH客户端

作者头像
房东的狗丶
发布2023-02-17 14:55:06
1.4K0
发布2023-02-17 14:55:06
举报
文章被收录于专栏:友人a的笔记丶友人a的笔记丶

本来是想通过PHP的proc_open和进程进行交互,可是中间的坑太多了,不得不转换一下思路,然后想起来宝塔有网页版SSH客户端,然后研究了一下,嘿嘿,发现能成😁😁😁。

2022-07-22 更新

使用了有名的xterm.js,基本可作为生产使用了。(权限记得做好)

测试Demo :http://cname.teiao.com:5701

Github:https://github.com/friend-nicen/php-web-ssh

Gitee:https://gitee.com/friend-nicen/php-web-ssh

代码尽量详细的说明了,不懂可以问我哈。

前期准备

PHP连接ssh是基于第三方拓展库,PECL/ssh2( libssh2的php扩展,允许php程序调用libssh2中的函数)

然后有一个现成的、封装好大部分常用操作的库phpseclib:https://phpseclib.com

通过swoole的协程实现SSH的读和写并发进行以及websocket和浏览器进行通信。

记录

使用xtem.js的时候有一个原则就是前端只管把用户输入的东西提交给服务端,其他的不用管,而我当时的思路是只有当用户输完的想要的命令回车之后才提交,因此踩了很多坑。后面突然就想通了,本身前端就是作为数据输入端,至于什么时候回车、什么时候执行命令,shell本身就会进行处理。

1.安装ssh2拓展库

1.1 Linux安装

首先要安装libssh2(libssh2是一个C 函数库,用来实现SSH2协议。)https://www.libssh2.org

代码语言:javascript
复制
#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版本:

代码语言:javascript
复制
pecl install ssh2-1.1.2

如果安装报错,可以尝试安装其他更新或者更旧的版本,当然也可以通过phpize进行手动安装。

1.2 window安装 

libssh2好像一般都有,没有就下载丢到系统里,主要是安装ssh2。根据自己PHP的版本去下载,可以看下自己的php版本,以及是32位的还是64位的,32位的下载x86, 64位的下载x64

下载地址:https://windows.php.net/downloads/pecl/releases/

php.ini中加入 extension=php_ssh2.dll ,完事。

2.swoole安装

参考官网:https://wiki.swoole.com/#/environment

3.phpseclib

官网:https://phpseclib.com,composer安装即可:

代码语言:javascript
复制
composer require phpseclib/phpseclib:~3.0
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2022-07-22 更新
  • 前期准备
    • 1.安装ssh2拓展库
      • 1.1 Linux安装
      • 1.2 window安装 
    • 2.swoole安装
      • 3.phpseclib
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档