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,,一同探討技術問題!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM