黑夜给了我黑色的眼睛,我却用它来寻找光明
将SSH与PHP相连接 确保传输数据的安全
查看( 908 ) /
评论( 1 )
SSH可以通过将联机的封包加密的技术进行资料的传递;
使用SSH可以把传输的所有数据进行加密,即使有人截获到数据也无法得到有用的信息…… SSH可以通过将联机的封包加密的技术进行资料的传递;
使用SSH可以把传输的所有数据进行加密,即使有人截获到数据也无法得到有用的信息。同时数据经过压缩,大大地加快了传输的速度。总之,通过SSH的使
用,可以确保资料传输比较安全并且传输效率较高。PHPChina 开源社区门户j)v^+{C
不过,并非所有人知道PHP可以与SSH连接的特性以及与执行远程命令的能力,不过这方面却非常有用。由于我们可以在很多不同的方面利用PHP,因此 它有很多设置选项来控制其行为。一组庞大的可选参数能够保证您可以将 PHP用于许多不同的目的,但这同时也意味着这些参数和服务端配置的组合会带来一些安全问题。笔者一直在PHPCLI应用程序中使用SSH,笔者是从 cronjobs中使用它的,不过一开始并非十分简单,可以说颇费周折。关于安全使用Shell2函数的手册也不是十分实用,笔者进行了多次试验之后才有 了今天这篇小文章,愿您读了之后能为您配置PHP节省一点儿时间。
E#J,q2bf0 在这篇文章中,笔者需要假设:
h]-H&hA6~0 你正在运行的操作系统是Debian / Ubuntu。如果你运行的不是Debian / Ubuntu,你可能需要用你的Linux发行版本提供的数据包管理器来替换本文对应内容。PHPChina 开源社区门户aGXOJ^6w
你运行的是PHP5.如果你运行的不是PHP5,可用PHP4代替之。
%| Lj2M:N_3Sj0 你对PHP和服务器管理有基本的了解。
dl,U n4d0 你已经安装了PHP。PHPChina 开源社区门户3J2T$ZWT9|*FG
先决条件PHPChina 开源社区门户+Jg$d Vy&Jh V
安装程序包PHPChina 开源社区门户*v5s,A1w6D0Q C$y
首先,让我们安装下面的程序包:PHPChina 开源社区门户9K.{eh@H
sudo aptitude update
6Ji"FW J F ~m0 sudo aptitude install php5-dev php5-cli php-pear buid-essential \
/q8d3d.\3N Wy0 openssl-dev zlib1g-dev
E0b$[)T"CzhA0 安装完成进入下一步。PHPChina 开源社区门户[0j8oWU2^
编译libssh2
%R?#sJkQ b0 在从sourceforge网站下载了Libssh2之后,我们需要编译它,不过不要担心,你只需要按照如下的方法操作:
r*_.u c7]C0 cd /usr/srcPHPChina 开源社区门户 W/n e J|*cD7|8\r
wgetsurfnet.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gzPHPChina 开源社区门户Fg7Irw
tar -zxvf libssh2-0.14.tar.gzPHPChina 开源社区门户;K(cPR j
cd libssh2-0.14/
F~&B(JyE$viL$p"?0 ./configure
)n-[*ow8b0 make all install
r.v(xt0s!]"T8z+Y0 如果你想检查是否有了一个新版本,可以查看SF.NET.不过,0.14这个版本就足够了。
$xh*@t,{1Sm,]A1FG0 安装PHPChina 开源社区门户B[Z_-PO
安装ssh2.so
[+c*y:T kbSa|0 下一步,我们需要将libssh和 PHPr链接起来。有一个PECL模块可以完成这个功能。我们可以使用PEAR安装它。
|{|] Hs0 pear install -f ssh2PHPChina 开源社区门户 Zc6TB e
-f参数确保SSH2被安装,即使并没有一个稳定的选择对象。你还可以使用如下的包名称:ssh2-beta来强行运行。PHPChina 开源社区门户sh*q:h9km4y,\
现在你需要确保我们这个新的SSH2.SO模块被PHP加载。编辑你的php.ini文件(对于CLI实用程序:/etc/php5/cli/php.ini,对于Apache实用程序:/etc/php5/apache2/php.ini)
)Njh|)r5@X0 extension=ssh2.so
6L%p!|!`&U0 这应该放在“Dynamic Extensions”的下面,大约在第515行左右。
5K#A9j+f!r0 PHP支持SSH编写代码PHPChina 开源社区门户!`1X}[.R(]Bk'^%j^
你刚刚在PHP中启用了SSH2。那么现在应该如何利用它呢?有两个选择。SSH支持:
+W/z'u3ab([q2m0 1.执行方法:
'A'y J Lm2O0 这告诉你的服务器的操作系统来执行什么东西,并且通过管道传回到你的脚本。
8h0K4zh6ae0 2.外壳方法:PHPChina 开源社区门户7lR.N&muHzHy
这种方法在操作系统中打开一个实际的外壳,这正像通过终端应用程序登录时所操作的那样。有一些路由器并没有一个完全的POSIX一致性实施过程,而是在你登录时立即运行其自身的应用程序。这时你就需要这种方法。PHPChina 开源社区门户 SU~$n [2^&n
下面我们分别详述之:
不过,并非所有人知道PHP可以与SSH连接的特性以及与执行远程命令的能力,不过这方面却非常有用。由于我们可以在很多不同的方面利用PHP,因此 它有很多设置选项来控制其行为。一组庞大的可选参数能够保证您可以将 PHP用于许多不同的目的,但这同时也意味着这些参数和服务端配置的组合会带来一些安全问题。笔者一直在PHPCLI应用程序中使用SSH,笔者是从 cronjobs中使用它的,不过一开始并非十分简单,可以说颇费周折。关于安全使用Shell2函数的手册也不是十分实用,笔者进行了多次试验之后才有 了今天这篇小文章,愿您读了之后能为您配置PHP节省一点儿时间。
E#J,q2bf0 在这篇文章中,笔者需要假设:
h]-H&hA6~0 你正在运行的操作系统是Debian / Ubuntu。如果你运行的不是Debian / Ubuntu,你可能需要用你的Linux发行版本提供的数据包管理器来替换本文对应内容。PHPChina 开源社区门户aGXOJ^6w
你运行的是PHP5.如果你运行的不是PHP5,可用PHP4代替之。
%| Lj2M:N_3Sj0 你对PHP和服务器管理有基本的了解。
dl,U n4d0 你已经安装了PHP。PHPChina 开源社区门户3J2T$ZWT9|*FG
先决条件PHPChina 开源社区门户+Jg$d Vy&Jh V
安装程序包PHPChina 开源社区门户*v5s,A1w6D0Q C$y
首先,让我们安装下面的程序包:PHPChina 开源社区门户9K.{eh@H
sudo aptitude update
6Ji"FW J F ~m0 sudo aptitude install php5-dev php5-cli php-pear buid-essential \
/q8d3d.\3N Wy0 openssl-dev zlib1g-dev
E0b$[)T"CzhA0 安装完成进入下一步。PHPChina 开源社区门户[0j8oWU2^
编译libssh2
%R?#sJkQ b0 在从sourceforge网站下载了Libssh2之后,我们需要编译它,不过不要担心,你只需要按照如下的方法操作:
r*_.u c7]C0 cd /usr/srcPHPChina 开源社区门户 W/n e J|*cD7|8\r
wgetsurfnet.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gzPHPChina 开源社区门户Fg7Irw
tar -zxvf libssh2-0.14.tar.gzPHPChina 开源社区门户;K(cPR j
cd libssh2-0.14/
F~&B(JyE$viL$p"?0 ./configure
)n-[*ow8b0 make all install
r.v(xt0s!]"T8z+Y0 如果你想检查是否有了一个新版本,可以查看SF.NET.不过,0.14这个版本就足够了。
$xh*@t,{1Sm,]A1FG0 安装PHPChina 开源社区门户B[Z_-PO
安装ssh2.so
[+c*y:T kbSa|0 下一步,我们需要将libssh和 PHPr链接起来。有一个PECL模块可以完成这个功能。我们可以使用PEAR安装它。
|{|] Hs0 pear install -f ssh2PHPChina 开源社区门户 Zc6TB e
-f参数确保SSH2被安装,即使并没有一个稳定的选择对象。你还可以使用如下的包名称:ssh2-beta来强行运行。PHPChina 开源社区门户sh*q:h9km4y,\
现在你需要确保我们这个新的SSH2.SO模块被PHP加载。编辑你的php.ini文件(对于CLI实用程序:/etc/php5/cli/php.ini,对于Apache实用程序:/etc/php5/apache2/php.ini)
)Njh|)r5@X0 extension=ssh2.so
6L%p!|!`&U0 这应该放在“Dynamic Extensions”的下面,大约在第515行左右。
5K#A9j+f!r0 PHP支持SSH编写代码PHPChina 开源社区门户!`1X}[.R(]Bk'^%j^
你刚刚在PHP中启用了SSH2。那么现在应该如何利用它呢?有两个选择。SSH支持:
+W/z'u3ab([q2m0 1.执行方法:
'A'y J Lm2O0 这告诉你的服务器的操作系统来执行什么东西,并且通过管道传回到你的脚本。
8h0K4zh6ae0 2.外壳方法:PHPChina 开源社区门户7lR.N&muHzHy
这种方法在操作系统中打开一个实际的外壳,这正像通过终端应用程序登录时所操作的那样。有一些路由器并没有一个完全的POSIX一致性实施过程,而是在你登录时立即运行其自身的应用程序。这时你就需要这种方法。PHPChina 开源社区门户 SU~$n [2^&n
下面我们分别详述之: