zoukankan      html  css  js  c++  java
  • 基于LNMP环境的ssh2扩展

    1
    2
    3
    4
    5
    6
    7
    openssl: 加密算法集合,C语言实现
     
    libssh2:ssh2协议库库,C语言实现
     
    PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数
     
    依赖关系:PECL/ssh2 –> libssh2 –> openssl

    什么是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环境安装:

    LNMP环境一键安装:wget http://soft.vpser.net/lnmp/lnmp1.4-full.tar.gz

    wget https://www.libssh2.org/download/libssh2-1.5.0.tar.gz

    wget http://pecl.php.net/get/ssh2-0.12.tgz

    tar axf libssh2-1.5.0.tar.gz

    tar axf ssh2-0.12.tgz

    cd libssh2-1.5.0

    ./configure --prefix=/usr/local/libssh2

    make && make install

    cd ssh2-0.12

    phpize

    ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/usr/local/php/bin/php-config

    make

    echo "extension=ssh2.so" >>/usr/local/php/etc/php.ini

    cp /root/ssh2-0.12/modules/ssh2.so /usr/lib/modules/

    cp /root/ssh2-0.12/modules/ssh2.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

    php -i|grep ssh2

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

    vim index.php

    <?php

    $connection = ssh2_connect( '192.168.100.201', 22 );

    if ( ssh2_auth_password( $connection, 'root', 'redhat' ) ) {

    echo '登陆成功!<br>';

    }

    else{

    echo '登陆失败<br>';

    return;

    }

    $stream = ssh2_exec($connection, "systemctl stop httpd");

    stream_set_blocking( $stream, true );

    echo "Output: " . stream_get_contents($stream);

    ?>

    ******************************我也想难过的时候到海边走走,可是我的城市没有海。******************************
  • 相关阅读:
    Rancher中删除k8s节点数据,还原机器用于重新安装
    k8s、pod中的应用获取宿主机IP、PODIP等信息
    通过物理设备了解Osi网络架构
    el-tree懒加载无子级数据时去掉下拉箭头
    使用axios.all和axios.spread处理并发请求
    element日期控件修改时候显示1970年的问题
    echarts柱状图区域缩放可拖动参数配置
    记录element表格设置右侧固定,边框线消失的问题
    echarts饼图数据为0时隐藏数据指示线
    vue使用moment.js处理时间格式
  • 原文地址:https://www.cnblogs.com/phpk/p/10929572.html
Copyright © 2011-2022 走看看