Centos7.3下安装PHP的ssh2扩展,用来执行远程主机的shell命令

1.背景:最近做一个远程设备管理系统,要求输入远程设备的用户名和密码,登录到主机;登录成功之后可以输入shell命令,然后将执行结果返回

2.利用xampp快速搭建LAMP环境,之所以选用xampp,主要原因就是快!!

[root@iZ2zefbgycwbez4hr3fg6rZ local]# ./xampp-linux-x64-5.6.3-0-installer.run

3.安装ssh2的依赖

[root@iZ2zefbgycwbez4hr3fg6rZ local]# yum install libssh2 libssh2-devel gcc-c++ 

4.安装ssh2

首先下载ssh2

[root@iZ2zefbgycwbez4hr3fg6rZ local]# wget http://pecl.php.net/get/ssh2-0.12.tgz

解压

[root@iZ2zefbgycwbez4hr3fg6rZ local]# tar -zxvf ssh2-0.12.tgz

进入到ssh2目录

[root@iZ2zefbgycwbez4hr3fg6rZ local]# cd ssh2-0.12

执行phpize命令,提示要先安装autoconf

于是yum安装autoconf

[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# yum -y install autoconf

再次执行phpize,这次没有报错

[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# /opt/lampp/bin/phpize
[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# ./configure --with-php-config=/opt/lampp/bin/php-config LIBS=-ldl
[root@iZwz9ccvnq6egujzif4sftZ ssh2-0.12]# make
[root@iZwz9ccvnq6egujzif4sftZ ssh2-0.12]# make install

修改php.ini

[root@iZwz9ccvnq6egujzif4sftZ ssh2-0.12]# vim /opt/lampp/etc/php.ini

添加一行

extension=ssh2.so

5.测试
首先删除原先网站根目录下所有文件,并新建一个test.php

[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# cd /opt/lampp/htdocs/
[root@iZ2zefbgycwbez4hr3fg6rZ htdocs]# rm -rf *
[root@iZ2zefbgycwbez4hr3fg6rZ htdocs]# vim test.php

test.php内容如下:

<?php
    $user="要连接的主机用户名";
    $pass="要连接的主机密码";
    $connection=ssh2_connect('要连的主机IP',22);
    ssh2_auth_password($connection,$user,$pass);
    $cmd="cd /usr;ls;";
    $ret=ssh2_exec($connection,$cmd);
    stream_set_blocking($ret, true);
    echo (stream_get_contents($ret));

$cmd="cd /usr;ls";这行代码表示切换到/usr目录下并执行ls命令

分号将多条shell命令分隔开

浏览器地址访问 ip/test.php

发现将在远程主机上的shell命令已经执行成功! 

如果你遇到什么问题或者对本篇文章有什么建议,,欢迎添加本人qq1822581649,,一同探讨技术问题!

转载于:https://www.cnblogs.com/lwn007/p/8735499.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值