1. 程式人生 > >基於LNMP環境的ssh2擴展

基於LNMP環境的ssh2擴展

環境 tgz 相關 hat prefix mct 環境安裝 AS col

什麽是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擴展