基于LNMP环境的ssh2扩展

Posted mr-ding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于LNMP环境的ssh2扩展相关的知识,希望对你有一定的参考价值。

什么是php的ssh2扩展

Php ssh2扩(以下简称PECL/ssh2),允许在php程序中远程执行系统命令和文件传输,不需要在被监控的机器上单独开发和部署类似agnet的"木马"程序,大大降低了运维成本。

Php ssh2扩展需要的依赖库:

openssl: 加密算法集合,C语言实现

libssh2:ssh2协议库库,C语言实现

PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数

依赖关系:PECL/ssh2 –> libssh2 –> openssl

 

基于LNMP环境安装:

技术分享图片
 1 LNMP环境一键安装:wget http://soft.vpser.net/lnmp/lnmp1.4-full.tar.gz
 2 
 3 wget https://www.libssh2.org/download/libssh2-1.5.0.tar.gz
 4 
 5 wget http://pecl.php.net/get/ssh2-0.12.tgz
 6 
 7 tar axf libssh2-1.5.0.tar.gz
 8 
 9 tar axf ssh2-0.12.tgz
10 
11 cd libssh2-1.5.0
12 
13 ./configure --prefix=/usr/local/libssh2
14 
15 make && make install
16 
17 cd ssh2-0.12
18 
19 phpize
20 
21 ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/usr/local/php/bin/php-config
22 
23 make
24 
25 echo "extension=ssh2.so" >>/usr/local/php/etc/php.ini
26 
27 cp /root/ssh2-0.12/modules/ssh2.so /usr/lib/modules/
28 
29 cp /root/ssh2-0.12/modules/ssh2.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
30 
31 php -i|grep ssh2
View Code

 

最后,我们再通过一个简单的PHP程序来试用SSH2,该程序首先连接远程服务器,然后执行相关操作,最后读取操作执行的返回结果,具体例子代码如下。

技术分享图片
 1 vim index.php
 2 
 3 <?php
 4 
 5 $connection = ssh2_connect( 192.168.100.201, 22 );
 6 
 7 if ( ssh2_auth_password( $connection, root, redhat ) ) {
 8 
 9 echo 登陆成功!<br>;
10 
11 }
12 
13 else{
14 
15 echo 登陆失败<br>;
16 
17 return;
18 
19 }
20 
21 $stream = ssh2_exec($connection, "systemctl stop httpd");
22 
23 stream_set_blocking( $stream, true );
24 
25 echo "Output: " . stream_get_contents($stream);
26 
27 ?>
View Code

 

 

以上是关于基于LNMP环境的ssh2扩展的主要内容,如果未能解决你的问题,请参考以下文章

lnmp1.3-full安装包安装lnmp环境,如何安装PHP扩展

ssh2扩展安装以及基本的操作 linux系统学习

Linux系统中安装SSH2扩展步骤详解 linux技能学习

PHP7.3.5安装ssh2扩展

phpssh2卡死

基于CentOS 6.8平台最新源代码包编译安装LNMP环境搭建(Nginx+MySQL+PHP)